自定义事件.bind('click.myclick',function(){//});和unbind()也是如此

时间:2013-04-24 19:38:08

标签: jquery

我最近发现了类似这样的代码

$('.mybuttons').unbind('click.myclick');
$('.mybuttons').bind('click.myclick', function(){
   // do something
});

它会对点击事件做出反应以执行// do something。 我非常感兴趣的是它不会干涉 与其他点击事件。它根本没有解开它们。

我不知道事件'click.myclick'可以作为命名点击事件。

我查看了api.jquery.com,我发现在绑定下没有提到这个。 有人可以启发我或指向这里描述的在线文档吗? 我运行了一些测试,如果.被换成另一个角色,它就不再有效了,所以这些意味着myclick是事件点击的属性吗?

1 个答案:

答案 0 :(得分:9)

这称为命名空间事件。通过命名空间事件,您可以选择性地取消绑定使用命名空间绑定任何事件或特定事件的处理程序。

http://api.jquery.com/on/#event-names

$(element).on("click.mynamespace", handler);
$(element).on("change.mynamespace", handler);
$(element).on("mouseenter.mynamespace mouseleave.mynamespace", handler);
$(element).off(".mynamespace"); // unbind all the above events at once, without affecting others

这通常用在插件中,以便更容易管理事件和清理。