2013-07-29 3 views
1

일련의 div를 클릭 할 때 확인란을 선택하거나 선택을 취소하려고합니다. 예를 들어 세 개의 div 목록이 있고 각 div는 하나의 확인란에 해당합니다. 하나의 div를 선택하면 상자를 선택하고 이전 클릭으로 선택한 상자의 선택을 취소해야합니다.일련의 div를 클릭하여 확인란을 선택하거나 선택을 취소하십시오.

은 여기 내 html로

<div class="trigger">1</div> 
<div class="trigger">2</div> 
<div class="trigger">3</div> 

<input id="one" type="checkbox"> 
<input id="two" type="checkbox"> 
<input id="three" type="checkbox"> 

및 JS

$('.trigger').click(function(){ 
    $('input[type=checkbox]').attr('checked', false); 
    $('input[type=checkbox]').eq($(this).index('.trigger')).attr('checked', true); 
}); 

과정은 첫 번째 루프 잘 실행하고 첫 번째 반복 후 작동이 중지됩니다. 여기는 바이올린입니다. 내가 잘못

http://jsfiddle.net/sghoush1/GS7p8/5/

+0

의 소품을 사용해보십시오 소위 "라디오 b uttons "- 그들을 사용 해보십시오. 어쨌든'checked' 상태를 설정하려면'prop'를 사용해야합니다 : http://jsfiddle.net/E64KW/. 나를 위해 일하는 것 같습니다. 'attribute'을 설정할 때'.attr ("checked", "checked")'를 사용하여 검사 한 다음 **'removeAttr ("checked")'**를 사용하여 검사를 취소해야합니다. – Ian

+0

@ Ian - 라디오 버튼을 사용할 수있는 옵션이 있다면 그럴 것입니다. 이 옵션을 제공하지 않는 Drupal 모듈입니다. 그래서 나는 빠른 해킹을 쓰고있다. – soum

+0

@ hariharan-- 나는 그것을 전에 보았다. 그것은 내가 정말로 찾고 있었던 것을 정말로 wasnt한다. 그래서 나는 그것이 중복이라고 말하지 않을 것이다 – soum

답변

1

대신의 .prop()을 시도하고있는 중이 야 알아낼 질수 .attr()

$('.trigger').click(function(){ 
    $('input[type=checkbox]').prop('checked', false); 
    $('input[type=checkbox]').eq($(this).index('.trigger')).prop('checked', true); 
}); 

데모 : Fiddle

+0

@ Arun - 감사합니다. 그거였다. 효과가있다. – soum

1

하는 무엇이다 그 대신 ATTR

$('input[type=checkbox]').prop('checked', false); 
$('input[type=checkbox]').eq($(this).index('.trigger')).prop('checked', true); 
관련 문제