jQuery事件处理的特征(事件命名机制)

2020-05-29 06:59:46易采站长站整理


$("#button1").bind("click.a",function(eventObj){
console.log("click1");
});
$("#button1").bind("click.b",function(eventObj){
console.log("click2");
});
// success to cancel function2
$("#button1").unbind("click.a");

可以看到:使用命名空间,能够以一种更优雅的方式取消某种事件类型下的某个事件处理函数。这里值得一提:使用了命名空间与unbind并不冲突,上面三种形式的unbind依然可以正常使用。$(“#button1”).unbind()依然可以取消button1上的所有事件,$(“#button1”).unbind(“click”)依然可以取消所有的click事件。这种兼容性设计是非常棒的。

使用命名空间还要1个好处:能够按照命名空间来取消事件。


// 2个命名空间a和b
$("#button1").bind("click.a",function(eventObj){
console.log("click1");
});
$("#button1").bind("click.b",function(eventObj){
console.log("click2");
});
$("#button1").bind("mouseup.a",function(eventObj){
console.log("mouseup");
});
$("#button1").bind("mousedown.a",function(eventObj){
console.log("mousedown");
});

这段代码我们使用2个命名空间a和b,如果我只想要保留第2个click事件处理函数,其余的全部删除。我们可以有2种方式达到目的:

方式1:


$("#button1").unbind("click.a");
$("#button1").unbind("mouseup");
$("#button1").unbind("mousedown");

方式2:


$("#button1").unbind(".a");

很显然方式2更加简单,更加技巧性,虽然代码更不容易看懂,不过只要你熟悉JQuery就能看懂。项目中如果出现了你看不懂的代码,只有2种情况:要么别人不行,代码写的烂;要么自己不行,知识懂的少。如果不熟悉某种语言,又怎能用它写好代码呢?所以,代码质量、开发效率,和个人技能水平,团队水平紧密相关。

以上所述是小编给大家介绍的jQuery事件处理的特征(事件命名机制),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!