javascript - KnockoutJS 'checked' 绑定(bind)未应用于 customBinding?

标签 javascript jquery knockout.js

我有一个由 Knockout observable 控制的复选框,但在自定义绑定(bind)中,该元素未被选中。

<input type="checkbox" data-bind="checked: isChecked, highlightIfChecked: 'test'"/>

该元素在页面上被选中和取消选中,但在 highlightIfChecked 自定义绑定(bind)中,它不是。我正在使用 $(elem).is(":checked")

JSFiddle:http://jsfiddle.net/JgLck/

如何在自定义绑定(bind)中获取要检查的元素?

最佳答案

元素的检查值的设置发生在 checked 绑定(bind)的 update 函数中。目前,所有 init 函数都在元素绑定(bind)的 update 函数之前运行。

因此,如果您将自定义绑定(bind)切换为使用 update 而不是 init,那么您会看到正确的值。

此外,如果您希望再次触发绑定(bind),则需要将您的 isChecked 值更改为可观察值。请注意,在 KO 3.0 中,绑定(bind)将被独立处理,因此您的自定义绑定(bind)需要访问 isChecked 以创建依赖项。

http://jsfiddle.net/rniemeyer/eXEmM/

关于javascript - KnockoutJS 'checked' 绑定(bind)未应用于 customBinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17091153/

相关文章:

javascript - 如何更改任何图表水平仪表中的标记标签?

javascript - 带有 JQuery 的简单 JavaScript 计算器

javascript - 按下按钮时出现 div

javascript - 将表中的选定行添加到另一个表,然后能够撤消它,以便它返回到使用 Jquery 和 MVC3 的之前的表

javascript - 如何检查挖空渲染时间?

javascript - 保留动态变化元素的事件

asp.net-mvc-3 - 寻找使用 asp.net mvc3 和 knockout.js 上传文件的好例子

javascript - 希望用户能够确定 Chrome 扩展的 css/js 应用于哪些 URL

javascript - 使用 Scrolloverflow.js + Fullpage.js 包装的内容

javascript - 查找线条并更改背景颜色