2012-02-05 4 views
1

영어 실례합니다. 나는 편집 단추를 누른 후에 그 안에있는 데이터를 편집 할 수있는 동적 테이블을 만들려고했습니다. 마지막 열에 확인란 열을 만든 후 jQuery에서 원하는대로 클릭 기능을 실행할 수 없습니다.특정 확인란을 선택하면 모든 체크 박스가 선택됩니다.

만들기 기능은 다음과 같습니다

$("#meetingspanel td:last").each(function(event){ // Adding the checking column and showing the editing buttons  
     $("#btnDelete").fadeIn("slow"); 
     $("#btnRename").fadeIn("slow"); 
     $("<td style=border:0px><input type='checkbox' id='btncb'></td>").insertAfter($("td:nth-child(6)")); 
}); 

나는 내가 이것을 사용되는 함수 내에서 해요 경우 추측 :

$(":checkbox").click(function(event){ 
    alert("im here !");     
}); 

하고 그냥 체크 박스를 클릭하면 찾을니까. 도움 말 하시겠습니까?

답변

1

질문을 올바르게 이해했다면 스크립트에 체크 박스를 삽입했기 때문에 click 이벤트를 원래 바인딩 이후에 DOM에 추가 된 요소에서 실행하는 방식으로 바인딩해야합니다 . 당신이 jQuery를 1.7+를 사용하는 경우

, on 사용

$(someAncestor).on("click", ":checkbox", function() { 
    //Do stuff 
}); 

someAncestor 요구를 DOM에있는 요소로 위의 코드가 사용자가 트리거 할 확인란의 조상 실행될 때 그 사건. 코드 모양에 따르면 table 요소가 될 가능성이 큽니다.

이전 버전의 jQuery를 사용하는 경우 delegate 메서드를 대신 사용하십시오.

이 기능이 작동하는 이유는 DOM 이벤트가 DOM을 통해 발생한 요소에서 버블 링되기 때문입니다. 이벤트 처리기를 조상에 바인딩하면 이벤트가 해당 요소에 도달하면 해당 처리기가 실행됩니다. ondelegate 메서드는 이러한 이벤트를 필터링하여 특정 요소에서 비롯된 경우에만 트리거되는 방식을 제공합니다.

+0

위대한! 그것은 당신 덕분에 지금 작동합니다. –

+0

아무런 문제 없어요, 제가 도와 드릴 수있어서 기쁩니다. :) –

관련 문제