jQuery에서 trigger 이벤트를 검색하고 jQuery를 사용하지 않는 조건

3787 단어 jQuery
jQuery(elem).trigger(eventType)이 집행되었다.jQuery를 사용하지 않으면 이때 발생한 사건을 얻을 수 있습니까?

jQuery.fn.trigger () 구현 개요

jQuery.fn.trigger()jQuery.event.trigger()의 얇은 포장으로 처리의 대부분은 jQuery.event.trigger()에서 이루어진다(둘 다 src/event.js에서 정의된다).
현재 DOM에서는 이벤트를 생성하는 APInew Event, document.createEvent 및 생성된 이벤트를 발행하는 APIEventTarget.dispatchEvent(event)를 제공하지만, jQuery는 이러한 API를 사용하지 않고 이벤트 대상을 단독으로 제작하며 이벤트의 귀속 등도 자체적으로 실현한다.jQuery.fn.trigger() 발행 사건의 처리는 대체적으로 다음과 같다.
  • 귀속할 이벤트 노드를 열거하고 "jQuery에서 설정한 이벤트 처리 프로그램을 실행합니다. node['on' + type] 호출할 수 있으면 이 처리도 실행합니다."
  • 여기typetrigger()의 매개 변수로 전달된 이벤트 이름에서 이름 공간을 제거한 것입니다jQuery(node).trigger("click.foo.bar")click.
  • type: 이 포함되어 있는 경우 node['on' + type] 를 실행하지 않습니다.
  • 이벤트preventDefault()가 호출되지 않으면 관찰elem[type], 함수이면 실행.
  • 여기elem는 사건의 시작 노드jQuery(elem).trigger(event)입니다.
  • type 이 포함될 경우 : 이 처리되지 않습니다.
  • 예제

  • click :
  • 함수를 귀속할 노드의 onclick 속성으로 설정하면 1의 처리에서 실행됩니다.
  • 대부분의 노드는 본기click 방법을 가지고 있어야 하기 때문에 사건 전파의 대상이 되는 노드에 표준적인 사건 탐지기(전파 중 다른 탐지기가 전파를 억제하지 않는 한)를 설정하면 사건을 얻을 수 있다.
  • click.foo.bar: click와 같습니다.
  • reset :
  • click의 1과 같습니다.
  • 사건의 시작점인 노드가 본기reset 방법을 가지고 있을 때 click의 2와 같다.그렇지 않으면 foobar 의 2와 같습니다.
  • foobar(비표준 이벤트)
  • 함수를 귀속할 노드의 onfoobar 속성으로 설정하면 1의 처리에서 실행됩니다.
  • 이벤트의 시작점이 되는 노드의 foobar 속성에 함수를 설정하면 2의 처리에서 실행됩니다.
  • ajax:success: 가져올 수 없습니다.
  • 테스트: Catching jQuery events by vanilla JS - JSFiddle

    참조 / 연관

  • .trigger() | jQuery API Documentation
  • 자체 제작 대상의 활동 교환 jQuery.trigger가 아니라 jQuery입니다.저는 trigger Handler-hitode 909의 일기를 쓰는 게 좋을 것 같아요.
  • trigger() 방법 내의 이벤트 전파의 시뮬레이션에서capturephase에 대응하지 않고 bubblingphase만 실현한다.jQuery.fn.bind 등은 IE8 이하가 capture phase를 지원하지 않는 이유와 관련이 있을 수 있습니다.  Jquery .T.J. Crowder의 bind 이벤트 triggered when 이벤트 캡처 or 이벤트 버블(Stack Overflow)에 대한 답변
    일부 브라우저HTMLElement.click() 등에서 발생한 사건도 전파되기 때문에 여기node['on' + type]에서 다시 실행합니다. 

    좋은 웹페이지 즐겨찾기