2011-01-11 6 views

답변

0

두 가지 방법, 예를 들어, (.live 사용) 하거나 Ajax 호출 후 체크 박스에 .click() 이벤트를 바인딩 할 수 있습니다 위와 같이 하나는

$.post('url/path', function(response) { 
    $('.checkboxes').click(function() { 
    //do stuff here 
    }); 
}); 

.live() 메소드는 간단하지만 한계는 일반적으로 이벤트를 전파하기를 거부 제한 버블 링, 즉 이벤트를 가지고 있습니다.

+0

두 번째 체크 상자를 클릭하면 자동으로 체크하거나 다른 체크 박스를 체크하면 여전히 이상하게 작동합니다. –

+0

내가 언급 한 방식대로하고 있지만 첫 번째 체크 상자에 문제가있는 것은 항상 체크 표시가 나타나거나 체크되지 않은 경우입니다. 나는 다른 체크 박스를 테이블 아래로 똑딱 거리고있다. –

+0

당신이하고있는 일의 예를 게시 할 수 있습니까? 또는 당신이 원하는 것보다 더 자세히 설명해주십시오. 위에서 시도한 정확한 코드도 게시하십시오. – Populus

0

이 경우 .live() 이벤트를 사용할 수 있습니다. 동적으로 생성 된 체크 박스에 클래스를 할당하고 다음 코드를 사용합니다. 그 일의

$("#yourtableid input:checkbox.checkboxclass").live("click", function(){ 
    // to get the parent row 
    var row = $(this).closest("tr"); 
    // to prevent event bubbling 
    return false; 
}); 
+0

아약스를 통해 전달되는 모든 필드에 액세스하는 표준 방법입니까? 그렇다면 thankx 많이 내 문제를 해결. 더 있으면 추가하십시오. –

+0

'.live()'는 동적으로 생성 된 모든 요소에 이벤트 처리기를 연결합니다. – rahul

+0

당신은 내가 입력란의 전체 행을 ajax를 통해 그 체크 박스에 연결 시켜서 .live() 메소드를 사용하여 체크 박스를 클릭했을 때 전체 행을 허용하도록 어떻게 생각할 수 있겠습니까? –

2

난 당신이 대신은에 추가의 장점은이 click 핸들러 에 대한 모든 체크 박스를 추가하는 무게를 줄이고 새 행 동적 여부를 생성하는 경우 영향을받지입니다, 대신 delegate 기능을 사용하는 것이 좋습니다 것입니다 당신이 그것을 클릭하면 전체 표하고, 다음은 새 행을 추가 할 수 있습니다 때 당신은 단지

<table id="my_table"> 
</table> 

그리고 예를 들어 빈 테이블이 필요합니다, 당신은 클릭 체크 박스 어떤 알아 낸다. 클릭 이벤트 코드는 다음과 같아야합니다.

$("#my_table").delegate('checkbox',function(){ 
    $(this) 
     .closest("tr") 
     .css({background:"red"}); //example purposes, not necessary 
}); 
관련 문제