2011-09-07 4 views
0

이벤트 핸들러가 요소에 바인딩되어있어 다른 선택자로 이벤트를 트리거 할 수 있습니까? 내가 알고 싶은 보려면 아래 예제를보세요 :동일한 HTML 객체를 반환하는 여러 선택기로 동일한 핸들러 호출

예 : 클릭 이벤트 핸들러가 정의 된
HTML

<ul id="itemsList"> 
<li class="items" id="item1">element1</li> 
<li class="items" id="item2">element2</li> 
<li class="items" id="item3">element3</li> 
</ul> 

자바 스크립트 :

$('.items').click(function(){ 
    //do something 
}); 

내 생각이 핸들러를 invoque하려면 다른 선택자를 사용하여 여러 가지 방법으로 수행 할 수 있으므로 $('#item1').click();$(#itemsList li).eq(1).click();은 동일한 이벤트 핸들러를 호출합니다. 권리?
나는 확실히 때문에 뭔가를 잘못하고 있어요 예 제대로 작동하지 않는 경우 ...

답변

0

내가 지적하는 몇 가지가 있습니다

  • 을 수식에 "을 잊지 마세요. $(#itemsList li).eq(1).click();
  • .eq(1) 실제로, 두 번째 li 선택 때문에에서 eq index 시작 0

올바른 구문 : 당신이 이미 할 것은이 핸들러 호출

// define handler 
$('.items').click(function(){ 
    alert($(this).text() + " clicked"); 
}); 

// call handler 
$('#item1').click() ; 

$("#itemsList li").eq(0).click(); 

jsFiddle demo

+0

내가 원하는 것은 각 선택기에 대한 핸들러를 정의하지 않는 다른 선택기를 사용하여 동일한 핸들러를 호출하는 것입니다. – Kaplan

+0

내 대답이 –

+0

업데이트되었습니다. 물론 처리기는 호출 된 줄보다 먼저 정의해야합니다. 맞습니까? – Kaplan

0

인수 또는 .trigger ('클릭')와() .click 호출은 결과에 클릭 이벤트 처리기를 호출해야합니다 당신의 선택자. pinouchon은 적절한 경우 따옴표를 사용하고 .eq()가 0 인 색인 된 것을 기억하여 선택기 구문에주의해야한다고 지적 했으므로 .eq (1)은 두 번째 li 요소를 선택합니다.

궁극적으로, 이벤트 핸들러를 호출하는 당신이 원하는 것을 생각하는 것은 : 실제로

$('#itemsList li').eq(0).click(); 

또는

$('#item1').click(); 
+0

정말입니까? 이 방법을 사용하여 여러 번 클릭 처리기를 호출하고 제대로 작동하는 것 같습니다. – Kaplan

+0

죄송합니다. http://api.jquery.com/click/에 따르면 올바른 것입니다. 또한 이벤트 핸들러를 트리거하는 데 사용될 수도 있습니다. 인수가 전달되지 않습니다. 나는 나의 대답을 업데이트 할 것이다. –

0

: http://jsfiddle.net/a3tNM/

$('#item1').click();$(#itemsList li).eq(1).click(); 같은 처리기. 새로운 것을 만듭니다.

관련 문제