ringa_lee2017-05-19 10:44:35
不可以,只能一個一個的移除綁定,DOM2級的是removeEventListener
,IE中的是attachEvent
。
匿名函數是不可以被解綁的,所以只能解除具名函數。
在JQuery
中有一個方法可以一下移除所有事件處理函數:
<input type="button" id="btn" value="Click Me!" name="">
<input type="button" value="删除所有事件" id="delAll" name="">
<p id="test">
</p>
$(function(){
$("#btn").bind("click",function(){
$("#test").append("<p>我的绑定函数1</p>");
}).bind("click",function(){
$("#test").append("<p>我的绑定函数2</p>");
}).bind("click",function(){
$("#test").append("<p>我的绑定函数3</p>");
});
$("#delAll").bind("click",function(){
$("#btn").unbind("click");
})
})
在JQ中,unbind
可以用來解除所有的綁定:
如果沒有參數,刪除所有綁定的事件。
如果提供了事件類型,那麼只刪除該類型的綁定事件。
如果把綁定時傳遞的處理函數作為第二個參數,則只針對該函數移除。
================================================= =========
暫時只想到這個方法啦,希望對你有幫助!
世界只因有你2017-05-19 10:44:35
element.addEventListener("mouseover", myFunction); 綁定事件
element.removeEventListener("mousemove", myFunction); 移除綁定事件
跨瀏覽器相容解決方案
var x = document.getElementById("myBtn");
if (x.addEventListener) { // 所有主流瀏覽器,除了 IE 8 及更早版本
x.addEventListener("click", myFunction);
} else if (x.attachEvent) { // IE 8 及更早版本
x.attachEvent("onclick", myFunction);
}