2014-09-12 1 views
0

$(document).on('click', handler) 또는 $('.class').on('click', handler)을 사용하고 싶지 않습니다 ... $('.class').click();을 사용하는 편이 낫습니다. 코드에서 자신의 길을 찾는 것이 더 쉽지만 속도가 빠르지는 모르겠습니다. 나는 DOM에 새 요소를 추가하는 경우jquery .on은 새 DOM 요소가있는 .click보다 빠릅니까?

좋아 :

function addElementThenBindAction(){ 
    var html = $ ("<div><a id="#myid">Link me</a></div>"); 

    html.click(addElementThenBindAction()); 

    $('body').append(html); 
} 

$('#aButtonFromDom').click(function(){ 
    addElementThenBundAction(); 
}); 

인가 그보다 더 빨리 - jQuery documentation 상태로

function addHtml(){ 
    var html = $ ("<div><a id="#myid">Link me</a></div>"); 
    $('body').append('html'); 
} 

$(document).on('click', '#myId', function(){ 
    addHtml(); 
}); 
$('#aButtonFromDom').click(function(){ 
    addHtml(); 
}); 
+0

성능 특성이 크게 다른 직접 및 위임 이벤트 처리 간에는 큰 차이가 있습니다. 그것은 당신이 당신의 타이틀 질문에서 물어 보는 것처럼 보이지 않습니다. – Bergi

+0

당신의'addElementThenBindAction'은 무한 재귀 적이며 스택 오버 플로우 예외를 던질 것인가? 코드가 실제로 무엇을 의미하는지 알려주십시오. – Bergi

답변

3

:

.click(handler)

이 메소드는 대답은 .on() 기능은 적은 기능이 호출되고 때문에 단순히 .click()보다 "더 빨리"가 될 것입니다 한마디로 .on("click", handler)

에 대한 바로 가기입니다. 그러나 당신이 볼 수있는 성능 이득/손실은 정말로 중요하지 않습니다.

오직 당신 만이 요소의 많은 처리 될 경우 당신은 어쩌면/참조 성능 차이를 느낄 수있을 것입니다. http://jsperf.com/jquery-on-versus-click/10 -


나는 다른 비교와 함께 이러한 비교를 다루는 jsperf을 발견했다. 최신 jQuery 버전을 사용하고 있지는 않지만 차이점이 가치가 있다고 생각하지는 않습니다.

관련 문제