2012-05-16 49 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/