2014-06-14 4 views
0

HTML 요소의 참조를 변수에 넣는 것은이 요소를 여러 번 참조해야하는 경우 좋은 방법입니다. 하지만 내 프로젝트를 만드는 동안이 문제가 발생합니다. 변수에 저장되는 요소에 여러 개의 동일한 이벤트를 바인딩하려면 어떻게해야합니까?변수에 저장된 요소에 여러 이벤트 바인딩하기

지금은 그것으로이 방법을 거래 :

var producerEl = $("#js-producer"); 
var brandEl = $("#js-brand"); 
var seriesEl = $("#js-series"); 

bind(seriesEl); 
bind(brandEl); 
bind(seriesEl); 

function bind($el) { 
    $el.on("keypress", function() { 
     // some code.. 
    }); 
} 

나는 $ (producerEl, 브랜, seriesEl) CSTE 연구진은 같은 뭔가가 필요 ...

답변

1
var producerEl = $("#js-producer"); 
var brandEl = $("#js-brand"); 
var seriesEl = $("#js-series"); 

    producerEl.add(brandEl).add(seriesEl).on("click", function() { 
     alert('hello'); 
    }); 
+0

그게 내가 찾던거야! –

0

당신이 읽을 수있는 코드를 유지하려는 경우 이 접근법을 제안해도 될까요?

$("#js-producer, #js-brand, #js-series").on('keypress', function() { }); 
+0

아니요. 변수에 사용 된 참조를 원하고 두 번째로 찾지 않습니다 (성능!). –

+0

당신의 접근 방식은 성능을 1 비트 향상시키지 못합니다. 순전히 가독성을위한 것입니다. –

+1

jQuery에는 캐시 시스템이 내장되어 있으므로 CSS 선택기를 다시 사용하더라도 질의가있을 것입니다. – GillesC

0

흠. 이 셀렉터 중 하나만 사용하는 경우에는 "나는 그것이 좋다"라는 것에 신경 쓰지 마십시오. 가장 좋은 해결책은 David Smith가 제공 한 해결책입니다.

어쨌든 jQuery는 캐시가있는 sizzle 선택기 엔진을 사용하고 있습니다. $ ("# js-producer, # js-brand, # js-series")

결과를 캐싱하고 다시 사용할 수 있습니다.

+0

질문은 단지 예시 일뿐입니다. 나는이 셀렉터를 여러 번 사용한다. –

관련 문제