gpt4 book ai didi

javascript - 停止元素上的更多事件处理程序

转载 作者:行者123 更新时间:2023-12-03 21:34:53 26 4
gpt4 key购买 nike

我正在编写一个小的 jQuery 扩展,可以防止用户双击链接。

$.fn.preventDoubleClick = function() {
return this.click(function() {
var $t = $(this)
, retVal = $t.data('active') // check the internal flag
;
if (retVal || retVal === undefined) { // if ON...
$t.data('active', false); // set the internal flag to OFF
setTimeout(function() {
$t.data('active', true);
}, 1000); // after 1 second, set the internal flag to ON
console.log("allowed");
return true;
} else { // if OFF...
console.log("blocked");
return false;
}
});
};

问题是,如果元素上有其他点击事件处理程序,它们仍然会触发:

$('#myLink').click(function() {
console.log("Clicked");
});
$('#myLink').preventDoubleClick();

现在,当您双击该链接时,我会在日志中看到以下内容:

allowed
clicked
blocked
clicked

所以基本上,我需要 preventDoubleClick 中的 click 函数来阻止所有其他事件处理程序触发。我怎样才能做到这一点?

最佳答案

感谢 Adam 的链接,我能够看到我需要的功能:stopImmediatePropagation() .

关于javascript - 停止元素上的更多事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/746506/

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