javascrpt綁定事件之匿名函數(shù)無法解除綁定問題
更新時間:2012年12月06日 18:00:10 作者:
經(jīng)常聽到有人說,匿名函數(shù)綁定事件不好控制啊,無法解除綁定啊,本文將介紹詳細的解決方法,需要的朋友可以參考下
經(jīng)常聽到有人說,匿名函數(shù)綁定事件不好控制啊,無法解除綁定啊等等等等,一直很奇怪誰說的不能解除綁定。
下面來實現(xiàn)click事件2次后,自動解除綁定。
看代碼:
var dom=document.getElementById("test"),clickt=0;
dom.addEventListener("click",function(e){
clickt++;
alert('你摸了我'+clickt+'下了。最多摸2下哦');
if(clickt>=2){
this.removeEventListener(e.type,arguments.callee,false);
}
});
很多擴展庫,比如jquery都可以如此來實現(xiàn)自定義解除綁定:
var t=0;
$(".a").bind("click",function(e){
t++;
alert('你摸了我'+t+'下了。最多摸2下哦');
if(t>=2){
$(this).unbind(e.type,arguments.callee);
}
});
其他的自己去測吧。
下面來實現(xiàn)click事件2次后,自動解除綁定。
看代碼:
復(fù)制代碼 代碼如下:
var dom=document.getElementById("test"),clickt=0;
dom.addEventListener("click",function(e){
clickt++;
alert('你摸了我'+clickt+'下了。最多摸2下哦');
if(clickt>=2){
this.removeEventListener(e.type,arguments.callee,false);
}
});
很多擴展庫,比如jquery都可以如此來實現(xiàn)自定義解除綁定:
復(fù)制代碼 代碼如下:
var t=0;
$(".a").bind("click",function(e){
t++;
alert('你摸了我'+t+'下了。最多摸2下哦');
if(t>=2){
$(this).unbind(e.type,arguments.callee);
}
});
其他的自己去測吧。
相關(guān)文章
JavaScript中的prototype.bind()方法介紹
在JavaScript中,我們經(jīng)常用到函數(shù)綁定,而當你需要在另一個函數(shù)中保持this上下文時,使用Function.prototype.bind()會很方便2014-04-04

