>웹 프론트엔드 >JS 튜토리얼 >자바스크립트의 이벤트 버블링 및 이벤트 캡처 메커니즘 정보

자바스크립트의 이벤트 버블링 및 이벤트 캡처 메커니즘 정보

巴扎黑
巴扎黑원래의
2017-09-02 13:30:331815검색

이 글은 자바스크립트의 이벤트 버블링과 이벤트 캡처 메커니즘에 대한 자세한 설명을 중심으로 관련 정보를 소개합니다. 인터넷에 관련 정보가 많이 있지만 이 글을 통해 모든 사람이 이해할 수 있기를 바랍니다. 아래는 javascript

의 이벤트 버블링 및 이벤트 캡처 메커니즘에 대한 자세한 설명입니다.

이벤트 트리거 타이밍 문제 설명

이벤트 캡처

: 문서에서 이벤트를 트리거하는 노드까지, 즉 하향식 이벤트를 트리거하려면 --- 외부에서 내부로


이벤트 버블링:

아래에서 위로 이벤트를 트리거하려면 --- 내부에서 외부로

바인딩 이벤트 메서드의 세 번째 매개 변수는 이벤트를 제어하는 ​​것입니다. 트리거 시퀀스가 ​​이벤트 캡처인지

true, 이벤트 캡처, false, 이벤트 버블링

일반적으로 기본값은 false, 즉 이벤트 버블링입니다.

Jquery의 e.stopPropagation은 버블링을 방지합니다. 즉, DOM까지 버블링을 중지하고 상위 수준 이벤트가 트리거되지 않아야 합니다.

다음은 제가 시도한 예입니다.


 <!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>事件冒泡与事件捕获</title> 
  <script> 
    window.onload = function () { 
      document.getElementById("parent").addEventListener("click",function(e){ 
        alert("parent事件被触发,"+this.id); 
      },true) 
      document.getElementById("child").addEventListener("click",function(e){ 
        alert("child事件被触发,"+this.id) 
      },true) 
    } 
 
  </script> 
</head> 
<body> 
<p id="parent"> 
  parent事件 
    <p id="child" class="child"> 
  child事件 
  </p> 
</p> 
</body> 
</html>

이 예에서는 이벤트 캡처인 세 번째 true를 추가했습니다.

추가하지 않으면 기본 이벤트 버블링이 사용됩니다. 이때 이벤트 트리거 시퀀스는 내부에서 나옵니다.

위 내용은 자바스크립트의 이벤트 버블링 및 이벤트 캡처 메커니즘 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.