2011-01-07 7 views
0

거대한 감사를 변경 - Click td, select radio button in jQuery변경 세포 클래스는이 글의 도움을

을하지만 지금은 그것이 내가 바인더 제본 경우에도, 셀의 클래스를 변경하지 않습니다 문제가있어 ' jQuery에서 '변경'트리거 :

$("td input[type=radio]").bind('change click', function() { 

    $('td').removeClass('selected'); 
    $(this).parent('td').addClass('selected'); 

}); 

$("td").click(function() { 

    $('input:radio', this).attr('checked', true); 

}); 

희망이 있습니다. 라디오 버튼을 클릭하거나 키보드를 사용하여 라디오 버튼을 이동하면 셀의 클래스가 잘 변경됩니다.

$("td input:radio").bind('change click', function() { 

    $('td.selected').removeClass('selected'); 
    $(this).parent('td').addClass('selected'); 

}); 

작동하는 것 같다 :. JS Fiddle demo

+1

이전 질문의 답변이 도움이된다면 받아 들여야합니다. –

+1

나는 시도했다. 그러나 나는 8 분의 시간 제한을 아직 쳤다, 미안하다! (2 분) – Nick

답변

2

어느 쪽도 아니 당신이 셀을 클릭하여이 트리거 그러나 경우는

+0

완벽한, 감사합니다! – Nick

+0

+1 ([trigger()'] (http://api.jquery.com/trigger/) 옵션에 대해서는 생각하지 못했습니다. 'checked'는 부울이지만 반드시 그렇게해야합니다. (.removeAttr ('checked')'). –

+1

값을 * checked *로 설정 한 이유에 대한 설명을 추가했습니다. * selected *와 동일합니다. – mekwall

1

사용해보십시오 클래스 :(

감사를 변경하지 않습니다 click 또는 change 이벤트는 요소의 속성을 변경할 때 발생하므로 수동으로 트리거해야합니다. 가능한 한 체인을 연결하는 것이 더 좋으며이 경우에는 siblings() 펑션을 사용할 수 있습니다. 이온. 이름에서 알 수 있듯이 현재 선택된 요소의 이 선택된 <td> 요소 인 모든 형제를 모두 선택합니다 ( 클래스 선택). 여기

당신은 이동 :

$("td input:radio").bind('change click', function(){ 
    $(this).parent('td').addClass('selected').siblings('.selected').removeClass('selected'); 
}); 

$("td").click(function() { 
    $('input:radio', this).attr('checked', 'checked').trigger('change'); 
}); 

또한, HTML 사양에 따라 checked 속성은 checked 유효한 값을 가지고있다. 그러나 대부분의 (모든 브라우저는 아니더라도) 브라우저가 해당 속성을 부울로 구문 분석하기 때문에 빈 또는 존재하지 않음이 거짓이고 다른 모든 값이 참을 수 있음에도 불구하고 작동하지만 그럼에도 불구하고 나는 개인적으로 사양을 따르는 것을 선호합니다.

+0

JS Fiddle 사이트에 대한 많은 감사의 말을 전합니다.하지만 여전히 나에게 도움이되지 않습니다. 흠 - 충돌하는 코드가 있어야합니다! 그것을 들여다 볼 것입니다. – Nick