更大的无线电选择区域

时间:2010-02-03 14:28:51

标签: jquery select click radio-button

<span>
   <img src="img/icon.png" alt="" />
   <label><input type="radio" name="" /> Label here</label>
</span>

我希望整个<span>可以点击,而不仅仅是收音机输入。我如何用jQuery做到这一点?

5 个答案:

答案 0 :(得分:5)

嗯,最简单的解决方案是将所有内容包装在<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;
});

答案 1 :(得分:3)

只需将<span>改为<label>,就可以在没有jQuery的情况下执行此操作:

<label for="some-id">
   <img src="img/icon.png" alt="" />
   <input type="radio" name="" id="some-id" /> Label here
</label>

答案 2 :(得分:1)

这是一种更好的方式。

$('span').click(function() {
    $(this).find('input').attr({checked:"checked"});
});

请记住,您要向所有范围添加点击事件。更好的是有一个关于跨度的类和参考。

$('.myClickySpan')...

<span class='myClickySpan'>...

答案 3 :(得分:0)

$("span").click(function(){
  var radio = $(this).find('input:radio');
  //do whatever with the radio button
});

我相信应该这样做。

答案 4 :(得分:0)

您好像没有使用labelfor属性。也许这样做会有所帮助

<input type="radio" name="r" id="r" />
<label for="r">
   <img src="img/icon.png" alt="" />
   Label here
</label>