【问题标题】:jQuery sortable not working in IEjQuery 可排序在 IE 中不起作用
【发布时间】:2012-05-18 13:38:50
【问题描述】:

我正在使用 jQuery sortable 来允许用户在 <ul> 列表中重新排列 <li>。 HTML 只包含

<ul id="uisortable"></ul>

而 javascript 包含以下内容:

$(function() {
    $('#uisortable').sortable();
    $("#uisortable").disableSelection();
});

项目是从JS动态添加的,添加项目后,我正在调用

$('#uisortable').sortable("refresh");

在 FF、Opera 和 Webkit 中一切正常,但在 IE 中根本不起作用 - 任何版本,甚至 IE 9。我尝试将 activate 选项添加到 sortable,如下所示:

$('#uisortable').sortable({
    activate: function() {
        throw("Start sorting");
    }
});

在 IE 9 脚本调试器中,我在行 throw("Start sorting") 上放置了一个断点 - 但该行永远不会激活。似乎在 IE 中,可排序对象根本没有附加到列表中。

我将 jquery 1.4.2 与 jquery UI 1.8.13 一起使用。

有趣的是,jquery ui 可排序演示页面工作正常,所以它必须与我的代码有关 - 但我可以进一步简化多少?好吧,我可以——我做到了。我没有动态地创建项目,而是在我的 HTML 中静态地创建它们(用于测试)。我从&lt;li&gt; 中删除了所有内容,除了一行文本。现在我的 HTML 看起来像这样:

<ul id="uisortable">
    <li class="sortitem">Item 1</li>
    <li class="sortitem">Item 2</li>
    <li class="sortitem">Item 3</li>
</ul>

使用上面的 javascript 代码。不过,不能在 IE 中工作。并且错误控制台中没有任何类型的错误。不过在 FF、Webkit 和 Opera 中都很好。我现在完全被难住了。非常感谢任何帮助。

【问题讨论】:

  • 你不能使用更新版本的 jQuery 吗?
  • @Blazemonger 我现在不想去那里。该网站上有数千个页面,其中大约一半依赖于 jquery。如果我更改 jquery 版本,我将不得不重新测试数千页。

标签: jquery jquery-ui internet-explorer jquery-ui-sortable


【解决方案1】:

显然,问题与 jquery.ui 版本有关。我从 1.8.13 升级到 1.8.20(比将 jquery 从 1.4.2 升级到 1.7.2 容易得多)——现在它可以工作了!

【讨论】:

  • 是的,但奇怪的是,我已经更新了 JSFiddle (jsfiddle.net/edmM7/9) 以使用 JQuery 1.4.2 和 1.8.13...它在 IE9 中仍然适用于我。
  • @Holf IE 的奇迹 :) 它现在可以工作了——我不再碰它了!
  • 非常感谢。一旦我们更改了 jqueryUI 的版本,它就可以工作了。
【解决方案2】:

看看 this JSFiddle.

在带有 JQuery 1.4.4 的 IE9 中工作正常。但是,如果我降到 JQuery 1.3.2(JSFiddle 上的下一个较低版本),它就会停止工作。

您可以在 JSFiddle 上“添加资源”以获取您正在使用的确切版本,但我认为使用 JQuery 1.4.4 或更高版本(使用适当版本的 JQueryUI)可以解决此问题。

【讨论】:

  • jQuery 1.3.2 需要旧版本的 jQuery-UI。
猜你喜欢
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多