点击标签却获取不到目标元素?如何精准捕获网页点击事件?

点击标签却获取不到目标元素?如何精准捕获网页点击事件?

网页点击事件精准捕获:解决标签点击问题

前端开发中,准确获取用户点击的html元素至关重要。本文将分析如何精确获取点击事件的目标元素,特别是解决点击

许多开发者尝试使用document.activeElement来获取焦点元素,但这在点击标签时,往往返回body元素,而非预期的元素。这是由于事件冒泡机制:点击事件会向上冒泡至父元素,最终到达document。document.activeElement获取的是获得焦点的元素,通常是body。

解决方法是阻止事件冒泡。通过Event.stopPropagation()方法,我们可以阻止事件向上传播。改进后的代码如下:

<p>content in p</p> <input type="text" value="content in input"> <textarea>content in textarea</textarea>  function handler(event) {     const targetElement = event.target;     console.log(targetElement.tagName);     event.stopPropagation(); } document.addEventListener('click', handler);

此代码使用event.target直接获取触发事件的html元素,避免了事件冒泡的影响。event.stopPropagation()确保只处理目标元素的点击事件。 无论点击还是

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享