2012-05-16 48 views
0

使用knockoutjs和jquery mobile,我需要创建一个数组中的复选框列表。看起来复选框列表呈现,但它没有响应点击。 http://jsfiddle.net/9zx7F/knockoutjs jquery mobile复选框列表问题:无法检查

我用一个fieldset标签和控制组的data-role构建列表。我也尝试过使用listview以及同样的问题。

编辑:进一步的细节 - 我发现它似乎与ko.applyBindings发生时间有关。我用本地主机上运行的代码创建了一个页面,这没问题。然后在ko.applyBindings周围添加一个计时器,问题再次发生。 http://jsfiddle.net/gonglei/9zx7F/12/

回答

0

我会改变其型号为这样的:

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

主要要考虑的就是在输入控制在适当的方式来呈现“值”属性。

问候。

1

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

1)展开从输入标签,并连同挂钩他们 '的' 属性

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

2)告诉JQM更新新的内容

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

@ tredder的解决方案的工作!下面是使用attr数据绑定属性绑定标签的小提琴的叉子,这对我来说看起来更清洁:http://jsfiddle.net/aib42/AnKR6/