首页 程序笔记 js click event.target得到了子元素

js click event.target得到了子元素

如果你在事件处理函数中使用了 event.target,但得到的是子元素而不是绑定事件监听器的元素,这可能是因为你点击的是元素的子元素,而事件会向上传播到其父元素。

你可以使用 event.currentTarget 来获取绑定了事件监听器的元素,即使事件是从其子元素冒泡上来的。以下是一个示例:

<!DOCTYPE html>
<html>
<head>
  <title>Click Event Example</title>
  <script>
    // 定义一个函数,用于处理点击事件
    function handleClick(event) {
      // 获取绑定了事件监听器的元素
      var clickedElement = event.currentTarget;
      
      // 在控制台输出绑定了事件监听器的元素
      console.log("Element with click event:", clickedElement);
    }
    
    // 添加事件监听器来监听点击事件
    window.onload = function() {
      // 获取需要添加点击事件监听器的元素
      var clickableElement = document.getElementById("clickable-element");
      
      // 添加点击事件监听器
      clickableElement.addEventListener("click", handleClick);
    };
  </script>
</head>
<body>
  <!-- 在页面中定义一个可点击的元素 -->
  <div id="clickable-element">
    Click me
    <button>Child Button</button>
  </div>
</body>
</html>

在这个示例中,当你点击 clickable-element 的子元素时,事件会冒泡到父元素 clickable-element 上,然后 handleClick 函数会被调用。在这个函数中,我们使用 event.currentTarget 来获取绑定了事件监听器的元素,即 clickable-element。然后我们在控制台输出了该元素。

1

站心网

如果你在事件处理函数中使用了 event.target,但得到的是子元素而不是绑定事件监听器的元素,这可能是因为..

为您推荐

JS 中彻底删除 JSON 对象组成的数组中的元素

在 JS 中,对于某个由 JSON 对象组成的数组,例如:var test = [{ "a": "1", "b": "2" }, { "a": "3", "b": "4" }, { "a": "5", "b": "6" }];如果我们想要删除其中的第二个json对象,应该怎么做呢?其实方法和操作数..

chrome 开发者工具如何查看元素:hover时的样式

在 Chrome 开发者工具中查看元素的 :hover 样式,可以通过以下步骤实现:打开开发者工具:右键点击页面中的元素,然后选择“检查(Inspect)”或按下 F12 或 Ctrl + Shift + I (Windows) / Cmd + Option +..

伪元素:before和:after的用法

使用伪元素:before和:after给照片添加阴影 一个名叫Paul UnderwoodWEB程序员使用伪元素:before and :after制作出了完美惊艳的相片阴影效果。其中的技巧是使用绝对定位固定伪元素,然后给它们的z-index一个负值,以背..

position:sticky纯css实现粘性定位让元素滚到顶部固定

想要让某些元素(例如导航,概要)滚动到顶部后就悬停在顶部固定,可以通过postion:sticky纯css简单实现,而不用使用js使得代码很复杂。关于postion: stickyMSDN关于sticky的描述是这样的:元素按照文档的正常流定位..

Unable to preventDefault inside passive event listener due to target being treated as passive.

谷歌浏览器控制台报错:[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/feature/6662647093133312打开这个链..

js页面滚动到某个元素处

要使用 JavaScript 将页面滚动到某个元素处,你可以使用 scrollIntoView() 方法。这个方法可以让指定的元素滚动到浏览器窗口的可视区域内。示例代码:假设你有一个页面上的元素,其 ID 为 targetElement,你想要滚动..

C++使用nlohmann json时如何删掉array类型中的元素

需求描述在C++中使用nlohmann json时,如果需要删掉array类型中的元素,不能使用basic_json::object提供的erase(iterator)重载,如果需要删除array中的元素需要使用erase(idx)重载进行删除。实现方法以下函数,传入..

DIVCSS定义在移动端或PC端显示元素

style.no-pc{display:inline;}@media(min-width:960px){.no-pc{display:none;}}/styledivclass=no-pc本文只在移动端显示,不在PC端显示/divdivclass=no-mobilestyle.no-mobile{display:none;}@media(min-width:960px..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制