【发布时间】: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 中静态地创建它们(用于测试)。我从<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 中都很好。我现在完全被难住了。非常感谢任何帮助。
【问题讨论】:
-
你不能使用更新版本的 jQuery 吗?
-
@Blazemonger 我现在不想去那里。该网站上有数千个页面,其中大约一半依赖于 jquery。如果我更改 jquery 版本,我将不得不重新测试数千页。
标签: jquery jquery-ui internet-explorer jquery-ui-sortable