【发布时间】:2011-11-20 00:59:04
【问题描述】:
将复选框绑定到选中的绑定并使用 jQuery mobile 时,在选中增强的复选框时,observable 不会更新。
见here
我查看了这两个库的代码,似乎knockoutjs 绑定到单击事件,但 jQuery 移动仅更新不会触发此事件的检查值,我已经捏造了一些黑客来尝试让这个工作毫无乐趣..
有人有解决方法吗?
【问题讨论】:
标签: jquery jquery-mobile knockout.js
将复选框绑定到选中的绑定并使用 jQuery mobile 时,在选中增强的复选框时,observable 不会更新。
见here
我查看了这两个库的代码,似乎knockoutjs 绑定到单击事件,但 jQuery 移动仅更新不会触发此事件的检查值,我已经捏造了一些黑客来尝试让这个工作毫无乐趣..
有人有解决方法吗?
【问题讨论】:
标签: jquery jquery-mobile knockout.js
可能有更好的方法来做到这一点,但看看这个:
我添加了一个新的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"
【讨论】: