2011-09-19 42 views
2

将复选框绑定到已检查的绑定并使用jQuery移动时,当增强复选框被选中时,observable不会被更新。knockoutjs和jQuery mobile - 复选框没有更新值

看到here

我已经看过了这两个库的代码,它似乎knockoutjs被绑定到点击事件,但jQuery Mobile的只更新选中的值不会触发这个事件,我身边有捏造与黑客试图得到这个没有喜悦的工作..

有没有人有这方面的解决方法?

回答

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"); 
    } 
}; 

和所使用的“事件“binding:

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