1. 이벤트 브라우저 클라이언트 응용 플랫폼에서는 기본 생활이 이벤트 중심, 즉 이벤트가 발생하고 그에 따른 조치가 취해집니다. 브라우저 이벤트는 어떤 일이 발생했다는 신호를 나타냅니다. 이벤트를 자세히 설명하는 것은 이 기사의 초점이 아닙니다. 아직 이해하지 못한 친구들은 W3school 튜토리얼을 방문하여 다음 내용을 더 잘 이해하는 데 도움이 될 것입니다. 2. 버블 메커니즘 버블링이란? 아래 그림을 이해하셔야 합니다. 거품은 물 밑바닥에서 시작하여 깊은 곳에서 얕은 곳으로, 위로 올라갑니다. 올라가는 동안 거품은 다양한 깊이의 물을 통과합니다. 이에 따라 이 거품은 여기의 이벤트와 동일하며 물은 전체 돔 트리와 동일합니다. 이벤트는 돔의 루트 노드로 전달될 때까지 돔 트리의 맨 아래 레이어에서 전달됩니다. 간단한 사례 분석 다음은 버블링 원리를 설명하는 간단한 예입니다. 3개의 간단한 dom 요소로 html을 정의합니다: div1, div2,span, div2 포함 범위, div1 포함 div2; 본문 아래 모두: "body"> "box1" class="box1"> ; code>"box2" class="box2"> "span"< code class="js plain">>이것은 범위입니다. < /div> 인터페이스의 프로토타입은 다음과 같습니다. 이벤트의 시간 및 트리거 이벤트 노드 정보: ? 1234 56 78 <code class="js string">"text/javascript"</code><code class ="js plain">></code></div> <div class="line number7 index6 alt2"> <code class="js space"> </code><code class="js plain">window.onload = </code><code class="js 키워드">함수</code><code class="js plain"> () {</code> </div> <div class="line number8 index7 alt1"> <code class="js space"> </code><code class="js plain">document. getElementById(</code><code class="js string">"body "</code><code class="js plain">).addEventListener(</code><code class="js string">"클릭 "</code><code class="js plain">,eventHandler) ;</code> </div> </td> <code class="js space"> </code><code class="js plain">}</code><td class="code"> <div class="container"> <code class="js space"> </code>함수 <code class="js plain">eventHandler(event) {</code><div class="line number1 index0 alt2"><code class="js plain"><script type=</code><code class="js string">"text/javascript"</code><code class="js plain">></code></div> <div class="line number2 index1 alt1"> <code class="js spaces"> </code><code class="js plain">window.onload = </code><code class="js keyword">function</code><code class="js plain">() {</code> </div> <div class="line number3 index2 alt2"> <code class="js spaces"> </code><code class="js plain">document.getElementById(</code><code class="js string">"body"</code><code class="js plain">).addEventListener(</code><code class="js string">"click"</code><code class="js plain">,eventHandler);</code> </div> <div class="line number4 index3 alt1"> <code class="js spaces"> </code><code class="js plain">}</code> </div> <div class="line number5 index4 alt2"> <code class="js spaces"> </code><code class="js keyword">function</code> <code class="js plain">eventHandler(event) {</code> </div> <div class="line number6 index5 alt1"> <code class="js spaces"> </code><code class="js plain">console.log(</code><code class="js string">"时间:"</code><code class="js plain">+</code><code class="js keyword">new</code> <code class="js plain">Date(event.timeStamp)+</code><code class="js string">" 产生事件的节点:"</code> <code class="js plain">+ event.target.id +</code><code class="js string">" 当前节点:"</code><code class="js plain">+event.currentTarget.id);</code> </div> <div class="line number7 index6 alt2"> <code class="js spaces"> </code><code class="js plain">}</code> </div> <div class="line number8 index7 alt1"> <code class="js plain"> console.log("시간:"+new 날짜(event.timeStamp)+" 이벤트를 생성하는 노드: " + event.target.id +" 현재 노드: "+event.currentTarget.id); } script> 🎜🎜🎜🎜 "This isspan", div2, div1, body를 차례로 클릭하면 다음 정보가 출력됩니다. ‐ out out off div 's ‐ ‐ ‐ ‐‐ ‐ ‐를 만들려면, 하위 요소인 div2 및span에서 이러한 요소를 클릭하면 클릭 이벤트가 발생하고 본문에서는 이를 캡처한 후 해당 이벤트 처리 함수를 호출합니다. 물 속의 거품이 아래에서 위로 올라가는 것처럼 이벤트도 마찬가지입니다.示 사건 전송의 개략도는 다음과 같습니다: , 사건이 진행되는 동안 몇 가지 정보가 있을 것입니다. 이는 사건의 일부입니다: 사건 시간 + 사건 장소 사건+사건 유형+사건+사건 현재 처리자 + 기타 정보, 전체 HTML 코드는 다음과 같습니다. ? 4 5 6 78 910111213141516171819 20 212223 2425 26272829303132333435 3637 383940 41 424344454647 "UTF-8"> <스크립트 유형="text/javascript" src="js /jquery-1.11. 0.js?1.1.11"> < title>여기에 제목 삽입< ;/제목> <code class="js string">"text/css"</code><code class="js plain">></code></div> <div class="line number8 index7 alt1"><code class="js plain">.box1 {</code></div> <div class="line number9 index8 alt2"> <code class="js spaces"> </code><code class="js plain">border: green 40px solid;</code> </div> <div class="line number10 index9 alt1"> <code class="js spaces"> </code><code class="js plain">width: 300px;</code> </div> <div class="line number11 index10 alt2"> <code class="js spaces"> </code><code class="js plain">height: 300px;</code> </div> <div class="line number12 index11 alt1"> <code class="js spaces"> </code><code class="js plain">margin: auto;</code> </div> <div class="line number13 index12 alt2"><code class="js plain">}</code></div> <div class="line number14 index13 alt1"> </div> <div class="line number15 index14 alt2"><code class="js plain">.box2 {</code></div> <div class="line number16 index15 alt1"> <code class="js spaces"> </code><code class="js plain">border: yellow 40px solid;</code> </div> <div class="line number17 index16 alt2"> <code class="js spaces"> </code><code class="js plain">width: 220px;</code> </div> <div class="line number18 index17 alt1"> <code class="js spaces"> </code><code class="js plain">height: 220px;</code> </div> <div class="line number19 index18 alt2"> <code class="js spaces"> </code><code class="js plain">margin: auto;</code> </div> <div class="line number20 index19 alt1"><code class="js plain">}</code></div> <div class="line number21 index20 alt2"> </div> <div class="line number22 index21 alt1"><code class="js plain">span {</code></div> <div class="line number23 index22 alt2"> <code class="js spaces"> </code><code class="js plain">position: relative;</code> </div> <div class="line number24 index23 alt1"> <code class="js spaces"> </code><code class="js plain">left: 50px;</code> </div> <div class="line number25 index24 alt2"> <code class="js spaces"> </code><code class="js plain">top: 50px;</code> </div> <div class="line number26 index25 alt1"> <code class="js spaces"> </code><code class="js plain"></code> </div> <div class="line number27 index26 alt2"><code class="js plain">}</code></div> <div class="line number28 index27 alt1"><code class="js plain"> <code class="js string">"text/javascript"</code><code class="js plain">></code></div> <div class="line number31 index30 alt2"> <code class="js spaces"> </code><code class="js plain">window.onload = </code><code class="js keyword">function</code><code class="js plain">() {</code> </div> <div class="line number32 index31 alt1"> <code class="js spaces"> </code><code class="js plain">document.getElementById(</code><code class="js string">"body"</code><code class="js plain">).addEventListener(</code><code class="js string">"click"</code><code class="js plain">,eventHandler);</code> </div> <div class="line number33 index32 alt2"> <code class="js spaces"> </code><code class="js plain">}</code> </div> <div class="line number34 index33 alt1"> <code class="js spaces"> </code><code class="js keyword">function</code> <code class="js plain">eventHandler(event) {</code> </div> <div class="line number35 index34 alt2"> <code class="js spaces"> </code><code class="js plain">console.log(</code><code class="js string">"时间:"</code><code class="js plain">+</code><code class="js keyword">new</code> <code class="js plain">Date(event.timeStamp)+</code><code class="js string">" 产生事件的节点:"</code> <code class="js plain">+ event.target.id +</code><code class="js string">" 当前节点:"</code><code class="js plain">+event.currentTarget.id);</code> </div> <div class="line number36 index35 alt1"> <code class="js spaces"> </code><code class="js plain">}</code> </div> <div class="line number37 index36 alt2"><code class="js plain"> "body"> "box1" class="box1"> "box2" class="box2"> "span">This is a span.