我正在使用jQuery sortable来允许用户在<ul>列表中重新排列<li>。HTML仅包含
<ul id="uisortable"></ul>javascript包含以下内容:
$(function() {
$('#uisortable').sortable();
$("#uisortable").disableSelection();
});这些项是从JS动态添加的,在添加项之后,我调用
$(‘#uisortable’)刷新(“.sortable”);
一切在FF、Opera和Webkit中都运行得很好,但在IE中却完全不起作用--任何版本,甚至IE9。我试着像这样在sortable中添加activate选项:
$('#uisortable').sortable({
activate: function() {
throw("Start sorting");
}
});在IE9脚本调试器中,我在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中还不错。我现在完全被难住了。任何帮助都是非常感谢的。
发布于 2012-05-18 21:56:46
显然,这个问题与jquery.ui版本有关。我从1.8.13升级到1.8.20 (比将jquery从1.4.2升级到1.7.2容易得多)-现在它可以工作了!
发布于 2012-05-18 21:49:24
看看this JSFiddle吧。
对于我来说,在JQuery 1.4.4的IE9中工作很好。但是,如果我升级到JQuery 1.3.2 (JSFiddle上可用的下一个较低版本),它就会停止工作。
您可以在JSFiddle上“添加资源”来获取您正在使用的确切版本,但我认为使用JQuery 1.4.4或更高版本(以及适当版本的JQueryUI)可以解决这个问题。
https://stackoverflow.com/questions/10653730
复制相似问题