nic*_*ckf 26 javascript jquery events
我正在写一个小的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;
}
});
};
Run Code Online (Sandbox Code Playgroud)
问题是,如果元素上还有其他单击事件处理程序,它们仍会触发:
$('#myLink').click(function() {
console.log("Clicked");
});
$('#myLink').preventDoubleClick();
Run Code Online (Sandbox Code Playgroud)
现在当你双击链接时,我在我的日志中得到了这个:
允许
点击
阻止
点击
所以基本上,我需要里面的click函数preventDoubleClick
来阻止所有其他事件处理程序的触发.我怎样才能做到这一点?
nic*_*ckf 36
感谢Adam的链接,我能够看到我需要的功能:stopImmediatePropagation()
.
归档时间: |
|
查看次数: |
22492 次 |
最近记录: |