jQuery事件命名空间多事件绑定自定义事件js 命名空间 javascript命名空间

时间:2022-08-19 20:27:50

http://blog.csdn.net/pigpigpig4587/article/details/24727791

jQuery事件命名空间

jQuery支持事件命名空间,以方便事件管理。例如,在下面的示例中,为div元素绑定多个事件类型,然后使用命名空间进行规范,从而方便管理。所谓事件命名空间,就晨事件类型后面以点语法附加一个别名,以便引用事件,如”click.a”,其中”a”就是click当前事件类型的别名,即事件命名空间

如:$(“div”).bind(“click.a”,function(){});

$(“div”).bind(“dbclick.a”,function(){});

$(“div”).bind(“mouseover.a”,function(){});

$(“div”).bind(“mouseout.a”,function(){});

若在所有绑定的事件类型后面附加命名空间,这样在删除事件时,就可以直接指定命名空间。如$(“div”).unbind(“.a”);

同样,如果相同的事件类型设置不同的命名空间,如果仅删除某一个事件处理程序,则只需要指定命名空间即可。

另外,在trigger()方法中,如果事件类型后面附加感叹号,则表示触发不包含命名空间的特定事件类型。

$(“div”).bind(“click”,function(){});

$(“div”).bind(“click.a”,function(){});

$(“div”).trigger(“click!”)//注意click类型后面的感叹号,它将触发第一个注册

多事件绑定

对于同一个对象的多个事件,可以连写的形式串在一起。

$(“div”).bind().bind()…

自定义事件

jQuery支持自定义事件,所有自定义事件都可以通过jQuery方法触发,例如下面的示例自定一个Delay事件类型,并把它绑定到input元素对象上,然后在按钮单击事件中触发自定义事件

$(“input”).bind(“delay”,function(event){

setTimeout(function(){

alert(event.type);

},1000);

});

$(“input”).click(function(){

$(“input”).trigger(“delay”); //触发自定义事件

});

自定义事件不是真正意义上的事件,可以把它理解为自定义函数,触发自定义事件就相当于调用自定义函数。