javascript - 在不知道按钮上下文的情况下监听单选按钮取消选择事件(主干 View )

标签 javascript backbone.js

我意识到取消选择时单选按钮不会触发“更改”事件的问题已经在该论坛上得到了广泛讨论(例如 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');
}

引用http://jsfiddle.net/edvpt6au/3/

关于javascript - 在不知道按钮上下文的情况下监听单选按钮取消选择事件(主干 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20462493/

相关文章:

javascript - 在检查 javascript 数组中的重复值并忽略其中一些重复值时,我的代码出现问题

javascript - 在 Angular4(typescript) 中实现 zimJS

javascript - 如何在 backboneJS 事件中使用多个参数

backbone.js - 非常基本的 Backbone/Underscore 通过 Require.js 问题驱动我

javascript - Backbone 的一个属性可以包含一个集合吗?

javascript - SVG Group 翻译问题 - 单位错误?

javascript - 我如何知道浏览器为特定元素设置的光标样式

使用 javascript/AJAX 的 PHP Cronjobs

jquery - Backbone.js 不改变 url 的路由

javascript - 单击 Backbone 路由器中的链接时如何传递事件(以访问数据属性)