Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 带jQuery UI拖放的Knockoutjs;IE8中的drop失败_Jquery Ui_Knockout.js_Jquery Ui Draggable_Jquery Ui Droppable_Knockout 2.0 - Fatal编程技术网

Jquery ui 带jQuery UI拖放的Knockoutjs;IE8中的drop失败

Jquery ui 带jQuery UI拖放的Knockoutjs;IE8中的drop失败,jquery-ui,knockout.js,jquery-ui-draggable,jquery-ui-droppable,knockout-2.0,Jquery Ui,Knockout.js,Jquery Ui Draggable,Jquery Ui Droppable,Knockout 2.0,我将knockoutjs和jquery拖放一起使用,它在Chrome、Firefox、IE9中运行良好,但在IE8中运行不好。我不能发布实际的代码,但我创建了一个JSFIDLE示例,可以在其中重现错误。请看一看 它在最新的Firefox、Chrome和IE9中运行良好。但是,在IE8中,当尝试拖动时,会出现以下错误: IE8错误#1 SCRIPT5007:无法获取属性“options”的值:对象为null或未定义 jquery-ui.1.8.18.js,第1412行字符13 以下是jquery

我将knockoutjs和jquery拖放一起使用,它在Chrome、Firefox、IE9中运行良好,但在IE8中运行不好。我不能发布实际的代码,但我创建了一个JSFIDLE示例,可以在其中重现错误。请看一看 它在最新的Firefox、Chrome和IE9中运行良好。但是,在IE8中,当尝试拖动时,会出现以下错误:

IE8错误#1 SCRIPT5007:无法获取属性“options”的值:对象为null或未定义 jquery-ui.1.8.18.js,第1412行字符13

以下是jquery ui中引用的代码:

$.ui.plugin.add("draggable", "cursor", {
start: function(event, ui) {
    var t = $('body'), o = $(this).data('draggable').options;
    if (t.css("cursor")) o._cursor = t.css("cursor");
    t.css("cursor", o.cursor);
},
stop: function(event, ui) {

        var o = $(this).data('draggable').options;
        if (o._cursor) $('body').css("cursor", o._cursor);

}
});
它是stop函数中变量o的声明:var o=$(this).data('draggable').options

如果在jquery ui中注释掉这两行,则会出现以下错误:

IE8错误#2 SCRIPT5007:无法获取属性“options”的值:对象为null或未定义 jquery-ui.1.8.18.js,第1439行,字符38

这表明:

$.ui.plugin.add("draggable", "scroll", {
start: function(event, ui) {
    var i = $(this).data("draggable");
    if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
},
drag: function(event, ui) {

    var i = $(this).data("draggable"), o = i.options, scrolled = false;
........................
这是上面代码段的最后一行,其中o=i.options

如果我将{scroll:false}设置为jqueryui draggable的一个选项,错误就会消失,但仍然无法工作

看起来,当我开始一个接一个地拖动所有事件时,即使没有释放鼠标单击(在JSFIDLE中运行代码测试时,请查看控制台以查看日志)


这是jQueryUI问题还是我做错了什么?在此方面的任何帮助都将不胜感激

问题是您在“开始”回调中从
observableArlay
中删除了该学生,这反过来会导致KO删除/分离关联的DOM元素。但是DragTable的代码指望被拖动的元素仍然可用(即使您指定了一个助手)

我猜是吧