gpt4 book ai didi

javascript - 如何在委托(delegate)中使用 jQuery 特殊事件?

转载 作者:行者123 更新时间:2023-12-01 05:51:05 25 4
gpt4 key购买 nike

我想设置一个 jQuery 特殊事件来消除双击:

(function($){
$.event.special.submitclick = {
setup: function(){
console.log('setup', this, arguments);
$(this).on('click', clickAction);
},
teardown: function(){
$(this).unbind('click', clickAction);
}
};
var clickAction = _.debounce(function(ev){
$(ev.target).triggerHandler('submitclick');
}, 300, true);

})(jQuery);

虽然此代码适用于正常的目标点击:

$("#xx").on("submitclick", function(){
console.log(this.id + ' target click');
});

它不适用于委托(delegate)点击:

$("#wrap").on("submitclick", "#xx", function(){
console.log(this.id + ' delegated click');
});

这是一个jsbin举个例子。

我应该如何设置才能使其也适用于委托(delegate)调用?

最佳答案

triggerHandler()仅调用绑定(bind)到特定元素的处理程序。事件冒泡不会发生,因此事件委托(delegate)无法工作。

使用trigger()相反:

var clickAction = _.debounce(function(ev) {
$(ev.target).trigger("submitclick");
}, 300, true);

关于javascript - 如何在委托(delegate)中使用 jQuery 特殊事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22192047/

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