>  기사  >  웹 프론트엔드  >  JavaScript에서 일반적으로 사용되는 클릭 이벤트 요약 및 공유

JavaScript에서 일반적으로 사용되는 클릭 이벤트 요약 및 공유

WBOY
WBOY앞으로
2022-10-11 14:43:155853검색

이 글은 온클릭 비동기성, 동시성, 이벤트 트리거 순서, 시간 등록 등 일반적으로 사용되는 클릭 시간에 대한 관련 내용을 주로 소개하는 JavaScript에 대한 관련 지식을 제공합니다. 함께 살펴보시길 바랍니다. 모두에게 도움이 될 것입니다.

JavaScript에서 일반적으로 사용되는 클릭 이벤트 요약 및 공유

[관련 권장 사항: JavaScript 비디오 튜토리얼, 웹 프론트 엔드]

onclick 소개

onclick은 HTML의 이벤트 속성이며, 해당 기능은 사용자가 요소를 클릭할 때 이벤트를 트리거하는 것입니다. .

onclick 이벤트는

,

루프를 사용했습니다. 이때 이 루프는 1억 번 실행됩니다. , 그러나 버튼을 클릭하는 것을 방해하지는 않습니다.

이때, 버튼을 클릭해도 콘솔에서는 응답이 없을 것입니다. 이는 onclick 이벤트가 비동기식이기 때문에 버튼을 클릭하면 onclick

이벤트가 발생하지 않고 대기할 때까지 기다립니다. JavaScript가 실행되면 스택의 작업이 실행될 때까지 트리거되지 않습니다.

onclick의 동기화

위에서는 onclick 이벤트가 비동기적이라고 했는데, 지금은 onclick 이벤트가 동기적이라고 합니다. 사실 둘 다 맞는 말입니다. 코드:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>onclick</title>
</head>
<body>
<button id="btn">click</button>
<script>
    document.getElementById(&#39;btn&#39;).onclick = function () {
        console.log(&#39;click&#39;);
    }
    for (var i = 0; i < 10; i++) {
        console.log(i);
        if (i === 5) {
            document.getElementById(&#39;btn&#39;).click();
        }
    }
</script>
</body>
</html>

위 코드에서는 콘솔 출력이 5에 도달하면 onclick 이벤트를 수동으로 트리거합니다. 이때 콘솔은 click

을 출력한 후 계속해서 다음을 출력합니다. .

관련 정보를 참조한 후 onclick 이벤트가 사용자에 의해 수동으로 트리거되면 onclick 이벤트는 비동기식이며 이벤트 대기열에 푸시됩니다. onclick

이벤트가 JavaScript 코드에 의해 트리거되면 onclick 이벤트가 발생합니다. 즉시 실행됩니다.

onclick의 트리거링 시퀀스

onclick 이벤트의 트리거링 시퀀스는 먼저 캡처한 다음 버블링하는 것입니다. 즉, 캡처 이벤트가 먼저 트리거된 다음 버블링 이벤트가 트리거됩니다.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>onclick</title>
</head>
<body>
<div id="div1">
    <div id="div2">
        <div id="div3">
            <button id="btn">click</button>
        </div>
    </div>
</div>
<script>
    document.getElementById(&#39;div1&#39;).onclick = function () {
        console.log(&#39;div1&#39;);
    }
    document.getElementById(&#39;div2&#39;).onclick = function () {
        console.log(&#39;div2&#39;);
    }
    document.getElementById(&#39;div3&#39;).onclick = function () {
        console.log(&#39;div3&#39;);
    }
    document.getElementById(&#39;btn&#39;).onclick = function () {
        console.log(&#39;btn&#39;);
    }
</script>
</body>
</html>

위 코드에서는 onclick 이벤트를

요소와

그런 다음

따라서 이벤트가 발생하는 순서는 onmousedown, onmouseup, onclick, ondblclick입니다.

따라서 onclick 이벤트를 사용할 때 마우스 버튼과 관련된 여러 이벤트가 바인딩된 경우 예상치 못한 문제가 발생하지 않도록 이벤트 처리 로직에 주의해야 합니다.

Event Object

onclick 이벤트에서는 이벤트 관련 정보가 포함된 이벤트 매개변수를 통해 이벤트 객체를 얻을 수 있습니다.

이벤트 객체는 MouseEvent의 인스턴스입니다. UIEvent와 Event를 상속하므로 이벤트 객체에는 UIEvent와 Event의 모든 속성과 메서드가 포함됩니다.

MouseEvent 속성:

JavaScript에서 일반적으로 사용되는 클릭 이벤트 요약 및 공유

MouseEvent 메서드:

  • getModifierState(): 지정된 키가 눌렸는지 여부를 나타내는 부울 값을 반환합니다.

  • initMouseEvent(): 이벤트 객체를 초기화합니다.

  • preventDefault(): 이벤트를 방지하기 위한 기본 동작입니다.

  • stopImmediatePropagation(): 이벤트가 위쪽으로 버블링되는 것을 중지하고 이벤트의 추가 캡처 또는 버블링을 방지합니다.

  • stopPropagation(): 이벤트가 발생하는 것을 중지합니다.

클릭 이벤트 등록 방법

클릭 이벤트는 onclick 속성, addEventListener() 메소드, attachmentEvent() 메소드를 통해 등록할 수 있습니다.

onclick 속성

onclick 속성은 요소의 속성으로, 클릭 이벤트가 발생하면 이 함수가 실행됩니다.

<button onclick="console.log(&#39;click&#39;)">click</button>

addEventListener()

addEventListener()方法是EventTarget的一个方法,它的第一个参数是事件的名称,第二个参数是事件处理函数,第三个参数是一个布尔值,表示是否在捕获阶段触发事件处理函数。

<button id="btn">click</button>
<script>
  var btn = document.getElementById(&#39;btn&#39;);
  btn.addEventListener(&#39;click&#39;, function() {
    console.log(&#39;click&#39;);
  });
</script>

attachEvent()

attachEvent()方法是EventTarget的一个方法,它的第一个参数是事件的名称,第二个参数是事件处理函数。

<button id="btn">click</button>
<script>
  var btn = document.getElementById(&#39;btn&#39;);
  btn.attachEvent(&#39;onclick&#39;, function() {
    console.log(&#39;click&#39;);
  });
</script>

结语

click事件是鼠标点击事件,它是MouseEvent的一个实例,它的事件类型是click,它可以通过onclick属性、addEventListener()方法和attachEvent()方法注册。

【相关推荐:JavaScript视频教程web前端

위 내용은 JavaScript에서 일반적으로 사용되는 클릭 이벤트 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제