jquery - Knockout js 和 jQuery mobile - 复选框不更新值

标签 jquery jquery-mobile knockout.js

将复选框绑定(bind)到选中的绑定(bind)并使用 jQuery Mobile 时,在选中增强型复选框时,可观察值不会更新。

参见here

我查看了两个库的代码,似乎 knockoutjs 绑定(bind)到了单击事件,但 jQuery Mobile 只更新了选中的值,而不会触发此事件,我已经捏造了通过黑客尝试让它毫无乐趣地工作..

有人有解决办法吗?

最佳答案

可能有更好的方法来做到这一点,但看看这个:

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

并使用“事件”绑定(bind):

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

关于jquery - Knockout js 和 jQuery mobile - 复选框不更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7467909/

相关文章:

javascript - 将多选元素的选择存储在字符串中

knockout.js - KO 数据绑定(bind) "text:"到带有参数的函数

javascript - KO 网格显示问题,在调整网格大小时显示一行。还包括图像

php - mysqli Select 无法正常工作

javascript - 使用输入类型=文件的文件上传在 IE 中不适用于第一个文件,适用于后续上传

javascript - Leaflet.js 自定义可编辑标记

javascript - Highcharts 显示在多个同名的 div 中

jQuery 获取所选文本下拉文本 jquery mobile

javascript - jQuery Mobile 停止事件

javascript - 从对象的 Knockout observableArray 的第 n 个索引中提取特定字段