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
)。