Knockout-2.2.0.Debug.js在IE9中抛出错误“SCRIPT3:找不到成员”。排序时

时间:2013-05-16 13:37:28

标签: jquery knockout.js knockout-sortable

我有MVC4 / Knockout.js的应用程序。我无法理解为什么我在IE9中收到错误。错误详情如下: -

  

SCRIPT3:找不到会员。 knockout-2.2.0.debug.js,1068行   人物13

Screenshot如下:

IE9 Error screenshot

我甚至不包括knockout-2.2.0.debug.js

感谢您的时间和帮助。

@Sivanv

1 个答案:

答案 0 :(得分:0)

你可以使用RP Niemeyer's解决方案,它对我有用。

ko.bindingHandlers.uiSortableList = {
        init: function (element, valueAccessor, allBindingsAccesor, context) {
            var $element = $(element),
                list = valueAccessor();

            $element.sortable({
                containment: 'parent',
                placeholder: 'placeholder',
                update: function (event, ui) {
                    var item = ko.dataFor(ui.item[0]),
                        newIndex = ko.utils.arrayIndexOf(ui.item.parent().children(), ui.item[0]);
                    if (newIndex >= list().length) newIndex = list().length - 1;
                    if (newIndex < 0) newIndex = 0;

                    ui.item.remove();
                    list.remove(item);
                    list.splice(newIndex, 0, item);
                }
            });
        }
};

var ViewModel = function (items) {
    this.items = ko.observableArray(items);

    this.data = ko.computed(function() {
        return ko.toJSON(this.items());
    }, this);
};

    var vm = new ViewModel([ { name : 'foo' }, { name : 'bar' }, { name : 'baz' }]);

ko.applyBindings(vm);

以下是jsFiddle链接