질문 : jQuery.click () 대 onClick
거대한 jQuery 응용 프로그램이 있으며 클릭 이벤트에 대해 아래 두 가지 방법을 사용하고 있습니다.
첫 번째 방법
HTML
<div id="myDiv">Some Content</div>
jQuery
$('#myDiv').click(function(){
//Some code
});
두 번째 방법
HTML
<div id="myDiv" onClick="divFunction()">Some Content</div>
JavaScript function call
function divFunction(){
//Some code
}
내 응용 프로그램에서 첫 번째 또는 두 번째 방법을 사용합니다. 어느 것이 더 낫습니까? 성능이 더 좋습니까? 그리고 표준?
답변
$('#myDiv').click(function(){
것이 표준 이벤트 등록 모델을 따르기 때문에 더 좋습니다 . (jQuery는 내부적으로 addEventListener
및 attachEvent
사용합니다).
기본적으로 현대적인 방식으로 이벤트를 등록하는 것은 이벤트를 처리하는 눈에 띄지 않는 방법입니다. 또한 대상에 대해 둘 이상의 이벤트 리스너를 등록하려면 동일한 대상에 대해 addEventListener()
var myEl = document.getElementById('myelement');
myEl.addEventListener('click', function() {
alert('Hello world');
}, false);
myEl.addEventListener('click', function() {
alert('Hello world again!!!');
}, false);
addEventListener를 사용하는 이유는 무엇입니까? (MDN에서)
addEventListener는 W3C DOM에 지정된대로 이벤트 리스너를 등록하는 방법입니다. 그 이점은 다음과 같습니다.
- 이벤트에 대해 하나 이상의 핸들러를 추가 할 수 있습니다. 이것은 다른 라이브러리 / 확장을 사용하더라도 잘 작동해야하는 DHTML 라이브러리 또는 Mozilla 확장에 특히 유용합니다.
- 리스너가 활성화 될 때 (캡처 대 버블 링) 단계를보다 세밀하게 제어 할 수 있습니다.
- HTML 요소뿐만 아니라 모든 DOM 요소에서 작동합니다.
최신 이벤트 등록에 대한 추가 정보-> http://www.quirksmode.org/js/events_advanced.html
HTML 속성 설정과 같은 기타 방법, 예 :
<button onclick="alert('Hello world!')">
또는 DOM 요소 속성 , 예 :
myEl.onclick = function(event){alert('Hello world');};
오래되어 쉽게 덮어 쓸 수 있습니다.
HTML 속성 은 마크 업을 더 크고 읽기 어렵게 만들므로 피해야합니다. 콘텐츠 / 구조 및 동작에 대한 우려가 잘 분리되어 있지 않아 버그를 찾기가 더 어렵습니다.
DOM 요소 속성 메서드의 문제점은 이벤트 당 하나의 이벤트 핸들러 만 요소에 바인딩 될 수 있다는 것입니다.
전통적인 이벤트 처리에 대한 추가 정보-> http://www.quirksmode.org/js/events_tradmod.html
MDN 참조 : https://developer.mozilla.org/en-US/docs/DOM/event
출처 : https://stackoverflow.com/questions/12627443/jquery-click-vs-onclick
'프로그래밍 언어 > jQuery, ajax' 카테고리의 다른 글
jQuery로 엔터키를 통해 Form을 제출하는 방법 (0) | 2021.10.13 |
---|---|
jQuery로 라디오 버튼을 확인하는 방법 (0) | 2021.10.12 |
jQuery를 사용하여 Ajax 요청 중단 하는 방법 (0) | 2021.10.12 |
jQuery UI 대화 상자에서 닫기 버튼을 제거하는 방법 (0) | 2021.10.07 |
jQuery data vs attr 사용법 차이 (0) | 2021.10.06 |