取消附加到元素的其他触发事件

时间:2018-03-26 12:37:47

标签: javascript jquery eventtrigger

我有一个附加了许多事件触发器的元素。

如何取消所有这些事件(编辑这些触发器的代码)并添加新事件。

到目前为止,我没有运气试过这个:

$(document).ready(function() {
    $( document ).on( 'click', '#element', function(e) {

        $(this).off();

        e.preventDefault();
        e.stopPropagation();
        e.stopImmediatePropagation();

        // now that it's cancelled, do NEW stuff below
        alert('test');
    });
});

2 个答案:

答案 0 :(得分:0)

克隆元素以删除所有事件侦听器,并用新的克隆元素替换该元素。

$(document).ready(function() {
    $( document ).on( 'click', '#element', function(e) {
        var clonedElem = $(this).clone();
        $( this ).replaceWith( clonedElem )
    });
});

答案 1 :(得分:-2)

你的代码应该这样做

$(this).off()

删除所有事件侦听器。但是,你想检查一下这个'真的是你想要解决的问题。在您的代码中,这个'将是Window对象,而不是#element