이 기사에서는 JavaScript의 이벤트 흐름에 대한 간략한 분석을 소개합니다. 필요한 참조 가치가 있습니다.
이벤트는 일반적으로 함수와 함께 사용되므로 함수 실행은 발생하는 이벤트에 의해 구동될 수 있습니다. 이벤트는 JavaScript로 감지할 수 있는 동작입니다.
1)在DOM元素中直接绑定,我们可以在DOM元素上绑定onclick、onmouseover、onmouseout、onmousedown、onmouseup、ondblclick、onkeydown、onkeypress、onkeyup等等 只可以执行一次 多次使用会跟随文档流所覆盖 <p></p> <script> var box1=document.getElementById("box1"); box1.onclick=function(){ alert("你瞅啥") } box1.onclick=function(){ alert("瞅你咋地") } </script> 只弹出一个 瞅你咋地 你瞅啥被覆盖
<p></p> <script> var box1=document.getElementById("box1"); box1.onclick = function () { alert("不服就干"); } </script>
이벤트를 바인딩하는 또 다른 방법은 다음을 사용하는 것입니다. addEventListener() 또는 이벤트 수신 함수를 바인딩하는 attachmentEvent()
<p></p> <script> var box1=document.getElementById("box1"); box1.addEventListener("click",function(){ alert("再瞅个试试") },false) //默认值为false 可以省略不写 box1.addEventListener("click",function(){ alert("试试就试试") }) //默认值为false 可以省略不写 </script> 两个都可以正常弹出 跟随文档流执行
이벤트 흐름 캡처: 이벤트 전파는 가장 구체적인 이벤트 대상에서 가장 구체적인 이벤트 대상으로 진행됩니다. 즉, 외부에서 내부로.
我们有以下代码 点击box3的时候 跟随자바스크립트의 이벤트 흐름 내용에 대한 간략한 분석 捕获 冒泡 <p>box1 </p><p>box2 </p><p>box3</p> <script> var box1=document.getElementById("box1"); var box2=document.getElementById("box2"); var box3=document.getElementById("box3"); box1.addEventListener("click", function () { console.log("捕获box1") }, true) box2.addEventListener("click", function () { console.log("捕获box2") }, true) box3.addEventListener("click", function () { console.log("捕获box3") }, true) box1.addEventListener("click", function () { console.log("冒泡box1") }, false) box3.addEventListener("click", function () { console.log("冒泡box3") }, false) box2.addEventListener("click", function () { console.log("冒泡box2") }, false) </script>
의 실행을 따르므로 먼저 버블링된 다음 캡처됩니다. 다음과 같이 주의해야 합니다.
# 🎜🎜##🎜🎜 #
이벤트 위임
#🎜🎜 #이벤트 위임이란 무엇입니까:
2단계: 하위 버블링 이벤트 수신 -element
여기서 기본값은 버블링입니다. 하위 요소 li를 클릭하면 위쪽으로 버블링됩니다.
3단계: 이벤트가 어떤 하위 요소인지 찾기
익명 콜백 함수를 통해 이벤트 개체를 받습니다. 알림으로 확인해보세요
<p> </p>
이벤트 차단# 🎜🎜#
#🎜🎜 #
웹페이지를 마우스 오른쪽 버튼으로 클릭하면 상자가 표시되나요? 여기서 스크린샷을 찍으면 표시되지 않습니다. 새로고침, 붙여넣기, 복사, 잘라내기 등의 버튼이 브라우저의 기본 오른쪽 클릭 이벤트입니다. 차단하세요.
<p> </p> <script> var box1 = document.getElementById("box1"); var box2 = document.getElementById("box2"); box1.addEventListener("click", function () { alert("我是第box1") }) box2.addEventListener("click", clickStop) //设置函数 阻止box2冒泡事件 当点击第二次时 阻止冒泡事件 var num = 0; function clickStop() { if (num >= 1) { box2.addEventListener(clickStop) } else { alert("我是box2"); num++; } } </script>