好的快速方案:
HTML:
<span class="answer">blah<input type="radio" value="1"></span>
jquery的:
$("span.answer").click(
function() {
check = $("input", this);
check.attr('checked', check.attr('checked') === true ? false : true);
);
好的,这样当我点击它内部时,这将检查/取消选中所选范围内的子无线电输入。
我遇到的问题是,当我实际点击单选按钮本身时,我不想运行此事件(显然因为jquery会将单选按钮视为已选中并取消选中 - 实际上与应该发生的事情完全相反通常情况下)。有点像这样:
$("span.answer:not(span input)").click
这当然不起作用。有任何想法吗?提前谢谢!
利奥
答案 0 :(得分:5)
$("span.answer input").click(function(evt)
{
evt.stopPropagation();
});
将阻止点击事件冒泡(并在“span.answer”上触发处理程序。)
答案 1 :(得分:4)
有一个特定的html标记来完成你尝试用jquery和javascript做的事情。
它是label
标记
<label>blah<input type="radio" value="1" /></label>
这将产生你想要的效果
<强> [更新] 强>
为了让Internet Explorer 6更好地使用标签的完整语法,使用for
属性,该属性以表单输入/ select / etc ..元素的id为目标。
<label for="radio_1">blah<input id="radio_1" type="radio" value="1" /></label>