찾다

 >  Q&A  >  본문

javascript - 브라우저는 이벤트가 발생했음을 어떻게 알 수 있습니까?

최근에 저는 이벤트 캡처 및 버블링과 관련된 문제를 깊이 연구해 왔습니다.
이런 이해가 있습니다. 맞는지 모르겠습니다. 살펴보실 수 있습니다.

이벤트 전파 메커니즘은 캡처 단계, 목표 단계 도달, 버블링 단계의 세 단계로 나뉩니다. 이 전파 메커니즘의 목적은 이벤트가 발생하는지, 어떤 유형의 이벤트가 발생하는지, 이벤트가 어디서 발생하는지 모니터링하는 것이라고 생각합니다. 소위 이벤트 캡처는 이벤트 발생 후 브라우저가 이벤트 처리 시간을 찾는 것을 의미하며, 이벤트 처리 함수와 addEventListener()의 마지막 매개변수를 등록하여 수행됩니다.

그런데 이 아이디어를 따르면 이런 문제가 생길 것 같아요.

예를 들어 다음과 같은 코드가 있습니다

으아악

캡처 방식을 사용하여 이벤트를 처리하고, 이벤트 처리 기능에서는 해당 이벤트가 계속해서 전파되는 것을 방지합니다. 이는 자연스러운 것처럼 보이지만 제 질문은 이벤트 전파가 중지된 경우 이벤트가 발생한 위치를 브라우저가 어떻게 알 수 있느냐는 것입니다. 이벤트가 발생했다는 것을 어떻게 알 수 있나요? 이벤트가 발생했다는 사실을 모르는 경우 해당 이벤트 핸들러를 어떻게 실행할 수 있습니까?

滿天的星座滿天的星座2723일 전742

모든 응답(6)나는 대답할 것이다

  • 给我你的怀抱

    给我你的怀抱2017-06-14 10:53:11

    귀하의 갈등은 포획 단계에 대한 잘못된 이해로 인해 발생합니다. 캡처와 버블링은 같은 수준에 있습니다. 하나는 외부에서 작동하고 다른 하나는 내부에서 작동합니다. 따라서 이벤트 인터럽트는 전파 이전이 아닌 전파 프로세스 중에 중단됩니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-06-14 10:53:11

    얻는 방법을 말씀하신다면. 제 생각에는 그 답이 JavaScript Event Loop에 있다고 생각합니다

    링크: https://developer.mozilla.org...

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-06-14 10:53:11

    브라우저에서 코드가 실행되고, 브라우저에서 이벤트가 감지되면, 브라우저는 사용자가 지정한 이벤트를 실행할 수 있도록 도와줍니다.

    그렇다면 브라우저는 어떻게 알 수 있습니까?

    회신하다
    0
  • 世界只因有你

    世界只因有你2017-06-14 10:53:11

    JavaScript는 지시 언어이기 때문입니다. 지시 언어란 무엇인가요? 즉, 작성하는 모든 JavaScript 문은 브라우저에 무언가를 하라고 알리는 명령입니다. 예를 들어, 가장 간단한 document.getElementById()는 실제로 JavaScript 자체가 아니라 관련 DOM을 얻으라고 브라우저에 알립니다. 이벤트 처리도 마찬가지입니다.

    회신하다
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-14 10:53:11

    클릭해서 실행disableClickHandler하면 이벤트 확산을 방지할 수 있으니...

    회신하다
    0
  • 黄舟

    黄舟2017-06-14 10:53:11

    이벤트 확산이 중지된 경우 브라우저는 이벤트가 발생한 위치를 어떻게 알 수 있나요?

    그것은 알고 싶지 않습니다.

    이벤트가 발생했다는 것을 어떻게 알 수 있나요?

    그것도 모릅니다.

    이벤트가 발생한 것을 모르는 경우 해당 이벤트 핸들러를 어떻게 실행할 수 있나요?

    게으르다고 하더군요.

    회신하다
    0
  • 취소회신하다