jQuery는 JavaScript의 addEventListener 메서드에 상당합니다.
이 JavaScript 메서드 호출에 해당하는 jQuery를 찾으려고 합니다.
document.addEventListener('click', select_element, true);
지금까지의 내용:
$(document).click(select_element);
그러나 이는 JavaScript 메서드의 마지막 파라미터(이벤트 핸들러를 캡처 또는 버블링 단계에서 실행할지 여부를 나타내는 부울)와 같은 결과를 얻을 수 없습니다(http://www.quirksmode.org/js/events_advanced.html)에서 이해한 바에 따르면).
jQuery를 사용하여 해당 파라미터를 지정하거나 동일한 기능을 구현하려면 어떻게 해야 합니까?
모든 브라우저가 이벤트 캡처를 지원하는 것은 아니지만(예를 들어 Internet Explorer 버전이 9보다 작으면 모두 이벤트 버블링을 지원하므로 jQuery가 포함된 모든 크로스 브라우저 추상화 이벤트에 핸들러를 바인딩하는 데 사용되는 단계입니다.
jQuery에서 찾고 있는 것 중 가장 가까운 것은 (jQuery 1.7+로 대체됨) 또는 이벤트 고유의 jQuery 메서드(이 경우 를 호출함)입니다.bind()(내부적으로는)모두 상승된 이벤트의 거품 단계를 사용합니다.
jQuery 1.7에서는.on()현재는 이벤트를 바인딩하는 데 선호되고 있습니다..bind():
http://api.jquery.com/bind/ 에서 :
jQuery 1.7에서는 .on() 메서드가 문서에 이벤트 핸들러를 첨부하는 데 선호됩니다.이전 버전에서는 .bind() 메서드를 사용하여 이벤트핸들러를 요소에 직접 부가합니다.핸들러는 jQuery 객체의 현재 선택된 요소에 연결되어 있으므로 .bind()에 대한 호출이 발생한 시점에 이러한 요소가 존재해야 합니다.보다 유연한 이벤트바인딩에 대해서는 .on() 또는 .delegate()의 이벤트 위임에 대한 설명을 참조하십시오.
매뉴얼 페이지는 http://api.jquery.com/on/에 있습니다.
가장 가까운 것은 바인드 함수입니다.
$('#foo').bind('click', function() {
alert('User clicked on "foo."');
});
주의할 점은 jQuery 이벤트 메서드는 실행/트랩되지 않습니다.load에embedSVG DOM을 포함하는 태그는 에 개별 문서로 로드됩니다.embed태그요. 제가 찾은 유일한 방법은loadraw JavaScript를 사용하는 이벤트입니다.
이거 안 돼 (해봤어)on/bind/load메서드) :
$img.on('load', function () {
console.log('FOO!');
});
단, 이 방법은 다음과 같습니다.
$img[0].addEventListener('load', function () {
console.log('FOO!');
}, false);
이 시점에서.on()이치노
$( "button" ).on( "click", function(event) {
alert( $( this ).html() );
console.log( event.target );
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button>test 1</button>
<button>test 2</button>
표준 JavaScript에 대한 이 문제의 Mozilla Development Network(MDN; 모질라 개발 네트워크)에 대한 뛰어난 대처법을 다음에 제시합니다(jQuery에 의존하지 않거나 일반적으로 jQuery에 대해 더 잘 이해하고 싶지 않은 경우).
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
위의 처리에서는 링크로부터의 이벤트흐름에 대해 설명합니다.
http://www.w3.org/TR/DOM-Level-3-Events/ #이벤트 플로우
요점은 다음과 같습니다.
- 이벤트에 여러 핸들러를 추가할 수 있습니다.
- 청취자가 활성화되는 단계를 세밀하게 제어할 수 있습니다(캡처와 버블링).
- HTML 요소뿐만 아니라 모든 DOM 요소에서 작동합니다.
- 이벤트에 전달되는 "this" 값은 전역 개체(창)가 아니라 요소가 실행되는 요소입니다.이건 매우 편리합니다.
- 레거시 IE 브라우저의 코드는 단순하며 "Legacy Internet Explorer and attachEvent"라는 제목에 포함되어 있습니다.
- 익명 함수에 핸들러를 묶는 경우 매개 변수를 포함할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2398099/jquery-equivalent-of-javascripts-addeventlistener-method
'source' 카테고리의 다른 글
| 사전에서 키-값 쌍의 하위 집합을 추출하시겠습니까? (0) | 2023.01.26 |
|---|---|
| window.location을 클릭합니다.JavaScript의 href 및 window.open() 메서드 (0) | 2023.01.26 |
| python은 Java Class.forName()과 동등합니까? (0) | 2023.01.16 |
| 변수를 동적으로 작성하려면 어떻게 해야 합니까? (0) | 2023.01.16 |
| PDO 준비 문에서 원시 SQL 쿼리 문자열을 가져오는 중 (0) | 2023.01.16 |