一段时间以来一直在研究这个概念,但仍然不确定最佳方法。
我想捕获一个点击事件并在以后触发任何(默认或手动附加的)事件。更具体地说,我想在.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)
但不确定它是否是我正在寻找的。