Javascript 淘汰赛&x27;选中';在customBinding中未应用绑定?
我有一个复选框被一个敲除可观察到的控制器选中,但是在自定义绑定中,元素没有被选中Javascript 淘汰赛&x27;选中';在customBinding中未应用绑定?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个复选框被一个敲除可观察到的控制器选中,但是在自定义绑定中,元素没有被选中 <input type="checkbox" data-bind="checked: isChecked, highlightIfChecked: 'test'"/> 元素在页面上被选中和取消选中,但在highlightIfChecked自定义绑定中,它不是。我正在使用$(elem).is(“:checked”) JSFiddle: 如何在自定义绑定中获取要检查的元素?元素检查值的设置发生在检查的
<input type="checkbox" data-bind="checked: isChecked, highlightIfChecked: 'test'"/>
元素在页面上被选中和取消选中,但在highlightIfChecked
自定义绑定中,它不是。我正在使用$(elem).is(“:checked”)
JSFiddle:
如何在自定义绑定中获取要检查的元素?元素检查值的设置发生在
检查的绑定的更新功能中。目前,所有的init
函数都在update
函数之前运行,用于元素上的绑定
因此,如果您将自定义绑定切换为使用update
而不是init
,那么您将看到正确的值
此外,如果希望再次触发绑定,则需要将isChecked
值更改为可观察值。请注意,在KO 3.0中,绑定将独立处理,因此您的自定义绑定需要访问isChecked
以创建依赖项
道歉;在这个简化的例子中,isChecked
上缺少可观察到的数据是一个疏忽。如果绑定将独立处理,元素
参数的外观如何?当使用$(元素)时,它是否仍然会给出正确的结果。是否(“选中”)
?是的,它仍然会为元素的当前状态提供正确的值。这将取决于您选中的绑定是否已经更新了元素。根据您的需要,您始终可以直接访问可观察对象(isChecked
)。