1
我有一個可排序的夾具列表,它使用foreach
綁定從observableArray
填充。陣列中每個燈具的參數之一是position
。用jQuery更新綁定排序?
該位置反映了夾具的排序順序。默認情況下,當使用foreach
插入夾具時,位置編號的順序是正確的,但是當您通過拖動項目排序列表時,位置編號爲使用jQuery更新:
$("#picks").sortable({
revert: true,
placeholder: "placeholder",
containment: 'parent',
axis: "y",
handle: '.dragHandle',
update: function() {
for (var i = 1; i <= $('#picks li').length; i++) {
$('#picks li:nth-child('+i+')').find('span.num').text(i);
}
}
});
所以,位置編號做改變,但由於數無需引用觀察到的更新,可觀察本身不會被更新。我的問題是,如何使用與jQuery排序相關的更新函數更新observable。
我不想讓數字成爲輸入,所以使用帶有值綁定的輸入不是一個選項!
嘗試在更新方法中手動通知所有fixtures observable數組的訂閱者,如下所示:「fixtures.valueHasMutated()」 – dreamweiver
jQuery函數在我的viewModel之外,所以我不能引用'fixtures'。我應該移動viewModel中的jQuery函數來嘗試嗎? –
我嘗試了這個路線,但它沒有達到預期的效果:http://jsfiddle.net/tsnolan23/rswq1kjt/17/ –