【发布时间】:2013-11-18 23:29:05
【问题描述】:
在 StackOverflow 上找到了 similar issue,但这对我的情况没有帮助。
我有一个 Knockout 3.0(JQuery 行为与 KO 2.3 相同)和 Jquery 1.9.1 应用程序,我试图淡出一个元素,但我一直收到“未捕获的 TypeError:无法设置属性 'cur'的未定义”。我可以将小提琴更改为使用 JQuery 1.8.3 或 JQuery 2.0.2,它会起作用。
这是模板/视图代码:
<div id="cart">
<ul data-bind="foreach: { data: myItems, beforeRemove: fadeIt}">
<li><span data-bind="text: $data"></span> <a href="#" data-bind="click: $root.deleteItem">X</a>
</li>
</ul>
<button data-bind="click: addItem">Add</button>
这是 Knockout ViewModel:
function CartViewModel() {
var self = this;
self.myItems = ko.observableArray(['A', 'B', 'C']);
self.fadeIt = function (element, index, data) {
$(element).fadeOut();
};
self.addItem = function () {
self.myItems.push('New item');
};
self.deleteItem = function (item) {
self.myItems.remove(item);
};
}
var vm = new CartViewModel();
ko.applyBindings(vm, document.getElementById("cart"));
我创建了一个JSFIDDLE 来演示这种行为。
寻找一些创造性的解决方法
我已经尝试过的一些事情:
-
在 *$el.css({opacity: 1, display: 'block'}).animate({opacity: 0}) 上使用 JQuery animate,但同样的错误失败
李> 我已尝试放入 $.delay() 以查看是否可以将 fadeOut() 推迟到未来的帧
感谢您的任何建议。理想情况下,我们不会切换到 JQuery 2.0+
【问题讨论】:
标签: jquery knockout.js