본 글에서는 특정 클릭 이벤트를 취소하는 jQuery의 방법을 주로 소개하고, 간단하게 이벤트 바인딩을 구현하고 이벤트 바인딩을 취소할 수 있는 jQuery의 관련 기술을 예시 형태로 분석해 도움이 필요한 친구들이 참고할 수 있다
우리 모두 알고 있듯이 jQuery는 동일한 이벤트를 여러 번 바인딩할 수 있으며 각 바인딩된 이벤트가 실행될 수 있습니다. 여기에 문제가 있습니다. 동적으로 생성된 DOM에서는 특정 요소에 대해 두 개의 서로 다른 클릭(A와 B로 가정)을 바인딩합니다. 요소를 추가하면 모든 요소가 다시 B에 바인딩됩니다. 이는 최종 결과로 이어집니다. 클릭하면 B 이벤트가 두 배로 늘어납니다.
다행히도 jQuery는 특정 네임스페이스에서 클릭을 취소하는 매우 우아한 방법을 제공합니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>无标题页</title> <script src="jquery/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $("#pTest").click(function(){ alert("正式事件。"); }); }); function bindEvent(){ for(var i=0;i<3;i++){ $("#pTest").bind("click.test",function(){ testEvent(); }); } } function testEvent(){ alert("测试事件"); } function ignoreMultiEvent(){ $("#pTest").unbind("click.test").bind("click.test",function(){ testEvent(); }); } </script> </head> <body> <p id="pTest" style="height: 163px;text-align:center;line-height:163px;width: 500px; background-color: #0000FF;"> 点我进行测试 </p> <input id="Button2" type="button" value="为上面的p绑定3次测试事件" onclick="bindEvent()" /> <input id="Button1" type="button" value="保留正式事件, 取消已绑定的多次测试事件,再绑定一次测试事件 " onclick="ignoreMultiEvent()" /> </body> </html>
더 많은 관련 튜토리얼을 보려면 JavaScript 비디오 튜토리얼을 방문하세요. 🎜>