<span>
<img src="img/icon.png" alt="" />
<label><input type="radio" name="" /> Label here</label>
</span>
라디오 입력뿐만 아니라 전체 <span>
을 클릭 가능하게하고 싶습니다. jQuery로 어떻게 할 수 있습니까?라디오 선택을위한 더 큰 영역
<span>
<img src="img/icon.png" alt="" />
<label><input type="radio" name="" /> Label here</label>
</span>
라디오 입력뿐만 아니라 전체 <span>
을 클릭 가능하게하고 싶습니다. jQuery로 어떻게 할 수 있습니까?라디오 선택을위한 더 큰 영역
이것은 더 좋은 방법입니다.
$('span').click(function() {
$(this).find('input').attr({checked:"checked"});
});
그냥 당신이 모든에 걸쳐
에 클릭 이벤트를 추가하는 것을 명심하십시오. 범위에 수업을 가지고 그것을 참조하는 것이 더 낫습니다. $('.myClickySpan')...
<span class='myClickySpan'>...
$("span").click(function(){
var radio = $(this).find('input:radio');
//do whatever with the radio button
});
나는 그렇게해야한다고 생각합니다.
당신은 단지 대신 <span>
<label>
함으로써 jQuery를하지 않고 그것을 할 수 :
<label for="some-id">
<img src="img/icon.png" alt="" />
<input type="radio" name="" id="some-id" /> Label here
</label>
글쎄, 가장 쉬운 해결책은이처럼 <label>
태그 안에 모든 것을 포장하는 것 :
<label for="foo">
<img src="img/icon.png" alt="" />
<input type="radio" name="" id="foo" />
</label>
레이블에 for
속성을 지정하고 해당 필드에 id
을 지정하면 레이블이 클릭 가능하게되고 해당 입력이 활성화됩니다. 당신이 어떤 이유로 jQuery를에 할 필요가있는 경우
for
속성을 사용하지 않는 것처럼
$('span').click(function() {
$(this).find('input').click();
return false;
});
입력이 이미 레이블 – raveren
@Raveren 안에 있으면'for' 속성이 필요하지 않습니다. 정확 합니다만, 거기에 보관하고 싶습니다. 제 생각에는 약간의 가독성을 추가합니다. –
잠깐, 이벤트 버블 링 때문에 무한 루프가 발생하지 않을까요? 또는 나는 틀린가? 편집 : 그냥 그것을 테스트하고 않습니다. .click() 대신 .select()를 사용해야합니다. – user113716
것 같습니다. 아마도 도움이 될 것입니다.
<input type="radio" name="r" id="r" />
<label for="r">
<img src="img/icon.png" alt="" />
Label here
</label>
..하지만 IE에서는 여전히 작동하지 않습니다. :) – 3zzy
예. IE는 모든 다른 브라우저와 마찬가지로 레이블을 존중합니다. –