2011-09-19 40 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"