참고: jquery는 버전 1.8 이후 더 이상 라이브 이벤트를 지원하지 않습니다.
html실제 프로젝트에서 발생하는 문제, 동적으로 추가된 태그
Live는 버블링이 발생하는 것을 방지합니다. return false나 e.stopPropagation()은 버블링이 발생하는 것을 방지할 수 없습니다. 다음은 제가 요약한 예입니다
<p id="box"> <a href="javascript:;" class="delete">init html</a> </p> <button id="add">add html</button>
$(function() { // 用click事件 $(document).click( function(event) { console.log('click'); event.stopPropagation(); }); // 用delegate事件 $(document).delegate('.delete','click', function(event) { console.log('delegate'); event.stopPropagation(); }); // 用live事件 $('.delete').live('click', function(event) { console.log('live'); event.stopPropagation(); //return false; }); // 新添加的a标签 $('#add').click(function() { var html = '<a href="javascript:;" class="delete">new html 1</a>'; $('#box').append(html); }); $('#box').click(function() { console.log('box emit'); }); });
우리는 event.stopPropagation()이 클릭에 효과적이라는 것을 알고 버블링을 방지하므로 클릭 이벤트를 새로 동적으로 추가된 레이블에 바인딩할 수 있습니다. .
위 내용은 jquery는 이벤트 버블링을 방지하고 해당 솔루션을 제공합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!