2010-12-30 3 views
0

질문이 있습니다. 고유 한 증가 ID 및 공유 클래스가있는 8 개의 단추가 있습니다. 코드를 복제에서 저를 방지하기 위해개체 클래스에 정의 된 단일 이벤트를 트리거하는 방법

<button class="btnChapter" id="btnChapter_1" value="1">1</button> 
<button class="btnChapter" id="btnChapter_2" value="2">2</button> 
<button class="btnChapter" id="btnChapter_3" value="3">3</button> 
... 

, 나는 각 버튼의 ID에 개별적으로 이벤트를 바인딩 대신 btnChapter 클래스에 클릭 이벤트를 바인딩.

$('.btnChapter').click(function(){ .. do stuff .. }); 

# btnChapter_2에 대해서만 click() 이벤트를 트리거하는 방법은 무엇입니까? 다음은 작동하지 않는 것 같습니다.

$('#btnChapter_2').click() 
+2

실제로 단추를 클릭하면 이벤트가 실행됩니까? – jondavidjohn

+1

문제를 재현하는 시험용 케이스를 제공하십시오 (http://jsfiddle.net에서 선호). @JacobRelkin이 말했듯이, 여러분이 보여준 코드는 건전합니다. – Phrogz

답변

0

귀하의 코드가 잘 될 것 같다. click 이벤트가 실제로 button 컨트롤에 바인드되었는지 확인할 수 있습니까?

내가 생각할 수있는 한 가지 이유는 dom이 준비되기 전에 javascript가 실행되므로 $('.btnChapter') 선택기가 요소를 반환하지 않을 수 있다는 것입니다.

클릭 이벤트가 바인딩 된 직후 $('.btnChapter').length에 의해 반환되는 값을 확인할 수 있습니까?

참고 : 버튼을 수동으로 클릭하고 이벤트가 실행되는지 여부를 확인할 수 있습니까?

Here은 내가 수행 한 샘플로 JSFIDDLE입니다. 정상적으로 작동합니다.

+0

작동하지 않습니다. "... 할 일 ..."부분이 깨졌습니다. 다음 질문 :이 게시물을 삭제하려면 어떻게해야합니까? :-피 – mrbinky3000

1

코드가 완벽합니다.

제 생각에는 잘못 생각하고있는 유일한 일은 ready 이벤트 이후에이 코드를 실행하지 않는 것입니다.

나는 또한 live의 사용을 제안합니다.

이 시도 :

$(function() { 
    $('.btnChapter').live('click', function(){ 
     //blah 
    }); 
    //... 
    $('#btnChapter_2').click(); 
}); 
+0

마크 업이 변경되거나 업데이트되지 않으면 '라이브'가 필요하지 않다고 생각하지 않습니까 (실적별로)? – ifaour

관련 문제