addEvent를 사용하여 클릭 이벤트를 요소에 여러 번 바인딩했습니다. 바인딩된 모든 이벤트를 한 번에 취소할 수 있는 방법이 있나요?
人生最曼妙的风景,竟是内心的淡定与从容!
이벤트 제거
아니요, 바인딩은 하나씩만 제거할 수 있습니다. DOM2 수준은 removeEventListener이고 IE는 attachEvent입니다. removeEventListener,IE中的是attachEvent。匿名函数是不可以被解绑的,所以只能解除具名函数。
removeEventListener
attachEvent
在JQuery中有一种方法可以一下移除所有事件处理函数:
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익명 함수는 바인딩을 해제할 수 없으므로 이름이 지정된 함수만 바인딩을 해제할 수 있습니다.
unbind
JQ에서는 unbind를 사용하여 모든 바인딩을 해제할 수 있습니다.
매개변수가 없으면 바인딩된 이벤트를 모두 삭제하세요.
이벤트 유형이 제공되면 해당 유형의 바인딩된 이벤트만 삭제됩니다.
바인딩 시 전달된 처리 함수를 두 번째 파라미터로 사용하면 이 함수만 제거됩니다.
element.addEventListener("mouseover", myFunction) 이벤트 바인딩
element.removeEventListener("mousemove", myFunction) 바운드 이벤트 제거
크로스 브라우저 호환 솔루션
var x = document.getElementById("myBtn");if (x.addEventListener) { // IE 8 이하를 제외한 모든 주요 브라우저
} else if (x.attachEvent) { // IE 8 이하
}
이벤트 제거
아니요, 바인딩은 하나씩만 제거할 수 있습니다. DOM2 수준은
removeEventListener
이고 IE는attachEvent
입니다.removeEventListener
,IE中的是attachEvent
。匿名函数是不可以被解绑的,所以只能解除具名函数。
在
JQuery
中有一种方法可以一下移除所有事件处理函数:在JQ中,
unbind
익명 함수는 바인딩을 해제할 수 없으므로 이름이 지정된 함수만 바인딩을 해제할 수 있습니다.JQuery
에는 모든 이벤트 핸들러를 한 번에 제거하는 메소드가 있습니다.JQ에서는
unbind
를 사용하여 모든 바인딩을 해제할 수 있습니다.매개변수가 없으면 바인딩된 이벤트를 모두 삭제하세요.
이벤트 유형이 제공되면 해당 유형의 바인딩된 이벤트만 삭제됩니다.
바인딩 시 전달된 처리 함수를 두 번째 파라미터로 사용하면 이 함수만 제거됩니다.
🎜 🎜================================================ === =========🎜현재로서는 이 방법밖에 생각나지 않습니다. 도움이 되었으면 좋겠습니다! 🎜element.addEventListener("mouseover", myFunction) 이벤트 바인딩
element.removeEventListener("mousemove", myFunction) 바운드 이벤트 제거
크로스 브라우저 호환 솔루션
var x = document.getElementById("myBtn");
으아악if (x.addEventListener) { // IE 8 이하를 제외한 모든 주요 브라우저
} else if (x.attachEvent) { // IE 8 이하
으아악}