jQuery绑定事宜的掩盖

ECMAscript中,事宜的绑定是叠加式,而不是许多人设想的掩盖式。如:

$('button').click(function(){
    alert("first");
});
$('button').click(function(){
    alert("second");
});

点击button以后,会先弹出first弹出框,再弹出second弹出框(而不是只弹出second弹出框)。

而许多时刻,我们愿望实行某函数、做出某些推断以后,为元素从新绑定事宜,而不是同时保存多个事宜监听。(比方:输入暗码之前,点击“登录”提醒“输入暗码”,暗码考证胜利后点击“登录”提醒“登录胜利”)

下面引见两种要领能够完成绑定事宜掩盖结果:
(我要来秀我的成语水平了,火线高能,非战斗人员敏捷撤离)

1.妙手回春法

$('button').die().live('click',function(){
//新的绑定事宜
});

先运用die()要领移除一切经由过程live()要领向元素增加的事宜处置惩罚顺序,再经由过程live()要领绑定新的事宜。
这类要领有个条件,那就是被掩盖的要领也必需是经由过程live()要领绑定的,不然die()要领“杀不死”它们,会完整没有结果。

2.欲擒故纵法

$("button").unbind('click').click(function(){
//新的绑定事宜
});

和第一种要领相似,先运用unbind()要领移除一切元素的事宜处置惩罚顺序,再绑定新的事宜(背面能够改成bind()要领举行绑定)。
这类要领也有个条件,那就是被掩盖的要领如果是经由过程live()要领绑定的,会没有结果。

置信一定有多事的小伙伴要问了,究竟什么时刻用bind()要领或许live()要领?二者的区分是什么?
但是我要放工了,这个题目有点庞杂,我会留到下一篇文章和人人一同探究。

    原文作者:条件状语从句
    原文地址: https://segmentfault.com/a/1190000003087963
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞