jQuery可排序在IE中不起作用

时间:2012-05-18 13:38:51

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

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

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

javascript包含:

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

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

$( '#uisortable')排序( “刷新”);

在FF,Opera和Webkit中,一切都运行良好,但在IE中根本不起作用 - 任何版本,甚至是IE 9.我尝试将activate选项添加到sortable,如下所示:< / p>

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

在IE 9脚本调试器中,我在第throw("Start sorting")行放置一个断点 - 但该行永远不会激活。似乎在IE中,sortable只是没有将自己附加到列表中。

我正在使用jquery 1.4.2和jquery UI 1.8.13。

有趣的是,jquery ui可排序的演示页面工作正常,所以它必须与我的代码有关 - 但我还能进一步简化它吗?好的,我可以 - 所以我做到了。我没有动态创建项目,而是在HTML中静态创建它们(用于测试)。除了一行文字外,我从<li>删除了所有内容。现在我的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很好。我现在完全被难倒了。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

看一看 this JSFiddle

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

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