gpt4 book ai didi

javascript - DOM 事件在被停止或阻止后是否可以允许其默认行为?

转载 作者:行者123 更新时间:2023-11-30 06:54:45 25 4
gpt4 key购买 nike

我想允许某些元素的默认事件行为(即 <a><form>),直到我可以确定 Google Analytics 队列中的项目已被处理。

我见过很多方法都涉及添加一个事件监听器来停止传递的事件(event.stop()event.stopPropagation()return false),或阻止其默认行为(event.preventDefault())。这就要求以某种方式重写行为,而不是仅仅传递/激活/释放原始事件。

例如,借助 mootools,我可以在 <a id="special-a-element"> 上使用以下事件处理程序在重定向到目标文档之前推送和处理 GA 事件:

$('special-a-element').addEvent('click', function() {
var url = this.get('href');
_gaq.push(['_trackEvent', 'category', 'action']);
_gaq.push(function() { document.location = url; });
return false;
});

在这里,document.location重新创建浏览器在允许处理 click 时可能执行的操作我已经停止的事件(使用 return false );这似乎是不必要的。如果special-a-element怎么办有target = "_blank" ?监听器不会在新窗口中打开链接,而是在当前窗口中打开链接(因为 document.location )。

所以我想允许默认行为而不停止它然后重新实现它。有什么建议吗?

最佳答案

你能不能做点像...

$(...).addEvent(function(e) {
setTimeout(function() {
e.target.parentNode.dispatchEvent(e)
}, 1000);

// cancel the event
return false;
})

关于javascript - DOM 事件在被停止或阻止后是否可以允许其默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com