knockoutjs和jQuery mobile - 复选框不会更新值

时间:2011-09-19 07:58:12

标签: jquery jquery-mobile knockout.js

将复选框绑定到选中的绑定并使用jQuery mobile时,如果选中增强复选框,则observable不会更新。

请参阅here

我查看了两个库的代码,似乎knockoutjs绑定到了click事件,但是jQuery mobile只更新了没有触发此事件的已检查值,我已经乱搞了试着让这个工作没有快乐..

有没有人有解决方法呢?

1 个答案:

答案 0 :(得分:0)

可能有更好的方法可以做到这一点,但请看一下:

http://jsfiddle.net/vQRWQ/

我添加了一个新的bindingHandler

ko.bindingHandlers.checkbox = {
    update: function(element, valueAccessor) {

        var value = valueAccessor();

        var valueUnwrapped = ko.utils.unwrapObservable(value); 

        $(element).attr("checked", valueUnwrapped).checkboxradio("refresh");
    }
};

并使用“事件”绑定:

data-bind="event: {change: function(){ checked(!checked()); } }, checkbox: checked"