您的位置:首页 > 其它

事件命名空间及自定义事件(转)

2015-09-22 14:26 381 查看

jQuery事件命名空间

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

alert("click");

});

$("div").bind("dbclick.a", function() {

alert("dbclick");

});

$("div").bind("mouseover.a", function() {

alert("mouseover");

});

$("div").bind("mouseout.a", function() {

alert("mouseout");

});

若在所有绑定的事件类型后面附加命名空间,这样在删除事件时,就可以直接指定命名空间。如$("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”); //触发自定义事件
});
自定义事件不是真正意义上的事件,可以把它理解为自定义函数,触发自定义事件就相当于调用自定义函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: