<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"});
});
只要記住要添加一個click事件所有跨越。更好的辦法是在跨度和參考上有一堂課。
$('.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的,這應該工作:
$('span').click(function() {
$(this).find('input').click();
return false;
});
如果輸入已經在標籤內,那麼您不需要'for'屬性 – raveren 2010-02-03 14:38:15
@Raveren,您說的沒錯,但我喜歡將它保留在那裏,在我看來它增加了一點可讀性。 – 2010-02-03 14:39:24
等等,這會不會因爲事件冒泡而導致無限循環?還是我誤會了?編輯:只是測試它,它確實。您應該使用.select()而不是.click()。 – user113716 2010-02-03 14:40:40
它看起來就像你不使用label的for
屬性。也許這樣做會幫助你
<input type="radio" name="r" id="r" />
<label for="r">
<img src="img/icon.png" alt="" />
Label here
</label>
..但這仍然不會在IE中工作。 :) – 3zzy 2010-02-03 14:36:37
是的,它會。 IE尊重標籤,就像其他瀏覽器一樣。 – 2010-02-03 17:31:50