我意识到取消选择时单选按钮不会触发“更改”事件的问题已经在该论坛上得到了广泛讨论(例如 here )。标准方法似乎是监听整个单选按钮组,这通常是有意义的。
然而,就我而言,我正在使用 Backbone 构建菜单,其中包含任意数量的 View ,每个 View 都是具有相同名称值的单选按钮(例如<input type="radio" name="foo"/>
。每个单选按钮都使用 Backbone 模型实例化,并且我想为该模型的其中一个属性绑定(bind)一个 setter ,以便在选择/取消选择单选按钮时触发。我当前的解决方案是在父 View 中构建事件处理程序,其中每个单选按钮都被实例化,但我不想这样做这是因为我不想保留对每个单选按钮 View 的外部引用。所以具体问题是:“是否有任何方法可以在不了解该按钮的任何信息的情况下监听单个单选按钮“取消选择”事件上下文。”提前感谢您的回复。
最佳答案
该事件不是由浏览器提供的,但您可以很容易地创建它:
var checkboxes = $('input[type=radio]:checked')
$('input[type=radio]')
.click(function() {
checkboxes.filter(':not(:checked)').trigger('deselect');
checkboxes = $('input[type=radio]:checked')
})
然后使用您只需添加
$('#mycheckbox').bind('deselect', function () {
alert('Deselected');
}
关于javascript - 在不知道按钮上下文的情况下监听单选按钮取消选择事件(主干 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20462493/