有没有一种简单的方法可以将“取消选择”事件附加到单选按钮上?似乎更改事件仅在选择按钮时触发
HTML
<;输入type=“radio”id=“one”name=“a”/>;
<;输入type=“radio”id=“two”name=“a”/>;
JavaScript
$('#one')。更改(函数(){
如果(选中此项){
//被选中时做某事
}否则{//这将永远不会发生
//取消选择时执行某些操作
}
});
JSFIDLE
为什么不简单地创建一个自定义事件,比如说,取消选择,并让它在单击的无线电组的所有成员上触发,除了单击的元素本身?它的方法更容易使用jQuery提供的事件处理API
HTML
<;!——第一组单选按钮-->;
<;=“btn\U red”标签>;红色:</标签>&书信电报;输入id=“btn\u red”type=“radio”name=“radio\u btn”/>;
<;=“btn_蓝色”标签>;蓝色:</标签>&书信电报;输入id=“btn\u blue”type=“radio”name=“radio\u btn”/>;
<;=“btn_yellow”标签>;黄色:</标签>&书信电报;输入id=“btn\u yellow”type=“radio”name=“radio\u btn”/>;
<;=“btn_粉红”标签>;粉红色:</标签>&书信电报;输入id=“btn\u pink”type=“radio”name=“radio\u btn”/>;
<;hr/>;
<;!--第二组单选按钮-->;
<;=“btn\u red\u group2”标签>;红色2:</标签>&书信电报;输入id=“btn\u red\u group2”type=“radio”name=“radio\u btn\u group2”/gt;
<;=“btn\u blue\u group2”标签>;蓝色2:</标签>&书信电报;输入id=“btn\u blue\u group2”type=“radio”name=“radio\u btn\u group2”/gt;
<;=“btn\u yellow\u group2”标签>;黄色2:</标签>&书信电报;输入id=“btn\u yellow\u group2”type=“radio”name=“radio\u btn\u group2”/gt;
<;=“btn\u pink\u group2”标签>;粉红色2:</标签>&书信电报;输入id=“btn\u pink\u group2”type=“radio”name=“radio\u btn\u group2”/gt;
jQuery
//将单击事件处理程序附加到所有单选按钮。。。
$('input[type=“radio”]”)。绑定('click',function(){
//仅处理与当前单击按钮的name属性匹配的内容。。。
$('input[name=“”+$(this).attr('name')+“]')。not($(this)).trigger('deselect');//当前无线组的每个成员,单击的成员除外。。。
});
$('input[type=“radio”]”)。绑定('deselect',function(){
log($(this));
})
取消选择事件将仅在同一无线电组(具有相同名称属性的元素)的成员之间触发
jsidle解决方案
编辑:为了说明附加标签标签的所有可能位置(包装无线元素或通过id选择器附加),最好使用onchange事件触发处理程序。感谢浮士德指出这一点
$('input[type=“radio”]”)。在('change',function()上{
// ...
}