是否可以将回调附加到委托事件监听器(.on())的设置?

时间:2015-12-29 20:16:50

标签: javascript jquery

基本上,我想使用一个类来选择接收委托的click事件监听器的元素。但是我想在那之后立即删除课程。

这就是我的想法:

docSelector // $(window.document)
.on('click touchstart', btnSelector, click[name])
.queue(function() {
        // remove class to prevent extra binding
        $(btnSelector).removeClass(btnSelector);
 });

我认为应该清楚我要做的是什么,但我不确定queue是否适用于此类事情。我对jQuery并不是很熟悉,但我正在研究其他人的代码,他们自由地使用它。提前谢谢。

换句话说,我想我正在寻找一种在链末端修复回调的通用方法。

1 个答案:

答案 0 :(得分:1)

queue函数取决于dequeue调用。如果需要尽快删除类,则应在指定的click[name]函数处理程序中执行此操作。

另外jQuery: more than one handler for same event

  

处理程序将按照绑定的顺序执行。

     

由于jQuery事件模型允许在一个元素上使用多个处理程序,   因此,后来的处理程序不会覆盖旧的处理程序。

您可以执行以下操作:

docSelector // $(window.document)
//Is executed first
.on('click touchstart', btnSelector, function(){
    // remove class to prevent extra binding
    var classSel = '.jc-click-' + name;
    $(classSel).removeClass(classSel);
})
//Is executed just after
.on('click touchstart', btnSelector, click[name]);