【发布时间】:2018-02-12 23:22:42
【问题描述】:
现在研究这个概念已经有一段时间了,但仍然不确定最佳方法。
我想捕获一个点击事件并在以后触发任何(默认或手动附加的)事件。更具体地说,我想在单击 .container 中的元素时记录一个跟踪事件。录制完成后,我想恢复被点击元素的行为。是否可以通过这种方式实现此功能?
<div class="container">
<span>My Text</span>
<a href="/myurl">My Link</a>
<button type="submit">My Button</button>
</div>
我正在向元素添加一个点击事件(无论它是否已经有其他元素),并捕获并阻止它的默认行为:
elementInsideContainer.addEventListener('click',e => {
e.preventDefault();
// submit some click tracking data via ajax
// carry on with other events on element
});
我知道我可以访问srcElement.href 并且可以window.location 那里的用户在捕获<a> 标记上的点击事件时,但这真的是最好的方法吗?如果元素是我想要跟踪的type=submit 按钮或只是一个<span>CLICK ME!</span> 怎么办(如上所示)?一直在阅读有关 dispatchEvent(event) 的信息,但不确定它是否是我正在寻找的。p>
【问题讨论】:
-
这样做的目的是什么?是否仅用于捕获事件。延迟触发的原因是什么?
-
我想记录每次单击 .container 中的元素时。录制完成后,我想恢复被点击元素的行为。
标签: javascript events onclick dom-events click-tracking