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에서는 이벤트를 생성하는 API
new Event
, document.createEvent
및 생성된 이벤트를 발행하는 APIEventTarget.dispatchEvent(event)
를 제공하지만, jQuery는 이러한 API를 사용하지 않고 이벤트 대상을 단독으로 제작하며 이벤트의 귀속일 등도 자체적으로 실현한다.jQuery.fn.trigger()
발행 사건의 처리는 대체적으로 다음과 같다.node['on' + type]
호출할 수 있으면 이 처리도 실행합니다."type
는 trigger()
의 매개 변수로 전달된 이벤트 이름에서 이름 공간을 제거한 것입니다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
: 가져올 수 없습니다.참조 / 연관
trigger()
방법 내의 이벤트 전파의 시뮬레이션에서capturephase에 대응하지 않고 bubblingphase만 실현한다.jQuery.fn.bind
등은 IE8 이하가 capture phase를 지원하지 않는 이유와 관련이 있을 수 있습니다. Jquery .T.J. Crowder의 bind 이벤트 triggered when 이벤트 캡처 or 이벤트 버블(Stack Overflow)에 대한 답변 일부 브라우저
HTMLElement.click()
등에서 발생한 사건도 전파되기 때문에 여기node['on' + type]
에서 다시 실행합니다. ↩ Reference
이 문제에 관하여(jQuery에서 trigger 이벤트를 검색하고 jQuery를 사용하지 않는 조건), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vzvu3k6k/items/8ce7f48bc81c20d6e38e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)