1.添加事件命名空间,便于管理
我们可以吧某元素绑定的多个事件类型用命名空间来规范:
$(function(){
$("div").bind("click.plugin",function(){
$("body").append("<p>click事件<p>");
})
$("div").bind("mouseover.plugin",function(){
$("body").append("<p>mouseover事件<p>");
})
$("div").bind("dbclick",function(){
$("body").append("<p>dbclick事件<p>");
})
$("button").click(function(){
$('div').unbind(".plugin");
})
})
这样在删除事件时,只需要删除命名空间.plugin就可以删除其下的所有事件,而dbclick不在其内,所以dbclick还是存在的
2.相同事件名称,不同命名空间的执行方法:
可以为元素绑定相同的事件名称,然后以命名空间的不同按需调用
$(function(){
$("div").bind("click.plugin",function(){
$("body").append("<p>click.plugin事件<p>");
})
$("div").bind("click",function(){
$("body").append("<p>click事件<p>");
})
$("button").click(function(){
$('div').trigger("click!"); //注意click后面的!
})
})
这里单击div元素时会同时出发click和click.plugin事件,但是点击button时只触发click事件。click后面的!是匹配所有不包含在命名空间里面的click方法。若想两者都触发可改为
$('div').trigger("click");