jQuery:如何删除所有委托事件

时间:2014-03-27 03:20:20

标签: javascript jquery

在我的程序中,我使用body委派网页中的所有事件。我如何删除它?这是我的代码,谢谢。

jQuery(function ($) {

  $("body").on("mouseenter.noteEvent", "*", function (event) {
        //doSomeThing();
    });

  $("body").on("mouseleave.noteEvent", "*", function (event) {
        //doSomeThing();
    });

 $("body").on("click.noteEvent", "*", function (event) {
        //doSomeThing();
    });

});

和删除事件功能,但它失败了,有什么建议吗?

 var removeEvent = function(){

    jQuery("body").off(".noteEvent", "*"); // '*' or '**' ?
    //jQuery("body").off(".noteEvent", "**"); 
};

2 个答案:

答案 0 :(得分:0)

您可以使用以下内容删除该事件:

$("body").off("mouseenter.noteEvent");

或者如果您使用:

$("body").off("mouseenter");

然后将移除所有mouseenter个事件。你也可以使用:

// Remove all event handlers from all paragraphs:
$("p").off();

// Remove all delegated mouseenter handlers from all paragraphs:
$("p").off("mouseenter", "**");

// Remove event handlers in the ".noteEvent" namespace
$("body").off(".noteEvent");

详细了解jQuery Site

答案 1 :(得分:0)

当按名称空间解除所有委托事件处理程序的绑定时,您只需要执行:

jQuery("body").off(".noteEvent"); // only specify the namespace.