【发布时间】:2014-03-29 09:29:30
【问题描述】:
我已将我的网站更新为最新的 JQuery、JQueryUI 和 KnockOutJS。
从那时起,当我将项目添加到可观察数组时,我的手风琴拒绝更新。在将 KnocKOutJS 2.0.0 版与旧版本的 JQuery 一起使用时,这工作得很好。
我已经在 JSFiddler 中重现了这个问题,希望能得到任何帮助。 javascript 是我实际代码的高度简化版本。
http://jsfiddle.net/glenb/M9222/6/
任何帮助将不胜感激。 我的模型如下所示:
function ModelCollection() {
var self = this;
self.ModelItems = ko.observableArray([]);
self.AddNewItem = function(){
var newItem = new ModelItem();
newItem.Name = "Added";
modelCollectionApp.ModelItems.push(newItem);
};
}
function ModelItem() {
var self = this;
self.Name = "";
}
HTML:
<div id="knockOutBinding">
<div data-bind="foreach: ModelItems, jqAccordion: {}">
<h3>An Element Title</h3>
<div>Some Content</div>
</div>
<button data-bind="click: AddNewItem">Add New Item</button>
</div>
最后我最初填充并绑定它
var modelCollectionApp = new ModelCollection();
var modelItem = new ModelItem();
modelItem.Name = "test1";
modelCollectionApp.ModelItems.push(modelItem);
var modelItem = new ModelItem();
modelItem.Name = "test2";
modelCollectionApp.ModelItems.push(modelItem);
ko.applyBindings(modelCollectionApp, document.getElementById("knockOutBinding"));
【问题讨论】:
-
你试过knockout-jQuery修复吗? - gvas.github.io/knockout-jqueryui/index.html
-
感谢您的链接,但是当我使用该库时,我得到:“消息:您不能将绑定多次应用于同一元素。”我不认为它与 ko foreach () 配合得很好。对不起,还没有尝试过手风琴,但我设法让它与标签一起使用。我试图让它在你的小提琴中工作,但没有运气,并决定用谷歌搜索它。在 stackoverflow 上找到有同样问题的人:stackoverflow.com/questions/19210897/…谢谢,我终于从淘汰赛中找到了一些帮助,贴在下面!
标签: jquery jquery-ui knockout.js jquery-ui-accordion knockout-3.0