Jquery mobile knockoutjs jquery移动复选框列表问题:无法检查

Jquery mobile knockoutjs jquery移动复选框列表问题:无法检查,jquery-mobile,knockout.js,Jquery Mobile,Knockout.js,使用knockoutjs和jquerymobile,我需要从数组中创建一个复选框列表。复选框列表似乎已呈现,但它没有响应单击 我使用了一个fieldset标记,数据角色为controlgroup来构建列表。我也用listview试过ul,同样的问题 编辑:进一步的细节-我发现它似乎和ko.applyBindings发生的时间有关。我创建了一个页面,在本地主机上运行相同的代码,一切正常。然后在ko.applyBindings周围添加了一个计时器,问题再次出现 我会为此更改模型: <!-- k

使用knockoutjs和jquerymobile,我需要从数组中创建一个复选框列表。复选框列表似乎已呈现,但它没有响应单击

我使用了一个fieldset标记,数据角色为controlgroup来构建列表。我也用listview试过ul,同样的问题


编辑:进一步的细节-我发现它似乎和ko.applyBindings发生的时间有关。我创建了一个页面,在本地主机上运行相同的代码,一切正常。然后在ko.applyBindings周围添加了一个计时器,问题再次出现

我会为此更改模型:

<!-- ko foreach: listItems-->
    <input type="checkbox" name="itemsList" value="name" />
    <span data-bind="text: name"></span>
<!-- /ko -->

主要考虑的是输入控件中的“值”属性以适当的方式呈现。


问候

我用两个步骤解决了这个问题

1) 从输入中展开标签,并将其与“for”属性挂钩

    <input type="checkbox" data-role="checkbox" data-bind="uniqueName: true, uniqueID: true, value: ID />
    <label data-bind="uniqueIDFor: true" >Click me</label>

    ko.bindingHandlers.uniqueIDFor = {
        init: function (element) {
            element.setAttribute("for", "ko_unique_" + ko.bindingHandlers.uniqueName.currentIndex);
        }
    };
    ko.bindingHandlers.uniqueID = {
        init: function (element) {
            element.setAttribute("id", "ko_unique_" + ko.bindingHandlers.uniqueName.currentIndex);
        }
    };

@tredder的解决方案有效!这里是一个使用
attr
data bind属性绑定标签的工具,在我看来,它看起来更干净:

    $('input:checkbox').trigger('create');