【发布时间】:2012-07-11 01:25:41
【问题描述】:
我正在使用 PHP 创建一系列列表。然后我尝试使用 jQuery 使用.sortable() 对列表进行排序。如果我只有一个列表,我有点工作。但是,如果我有多个列表,则 jQuery 会遍历这两个列表并且只记住最后一个列表。我知道.each() 是如何造成这种情况的,我只是不知道如何解决它。
HTML
<div class="list">
<ul id="sortList_1">
<li class="item_1" id="item_111">Item 1</li>
<li class="item_2" id="item_222">Item 2</li>
<li class="item_3" id="item_333">Item 3</li>
</ul>
</div>
<div class="list">
<ul id="sortList_2">
<li class="item_1" id="item_444">Item 1</li>
<li class="item_2" id="item_555">Item 2</li>
<li class="item_3" id="item_666">Item 3</li>
</ul>
</div>
jQuery
$(".list").each(
function(e) {
num = e + 1;
$("#sortList_" + num).sortable(
{stop:function(i) {
serial = $("#sortList_" + num).sortable("serialize");
$.ajax({
type: "GET",
url: "writeDB.php",
data: serial
});
}
});
});
【问题讨论】:
-
最后三行不是多了一个逗号吗?
-
只是在粘贴代码时错过了这一点。我已经删除了不透明度和光标模块——编辑过的代码
-
抱歉,我没发现问题:jsfiddle.net/SO_AMK/EMJax
-
.sortable 工作正常,这是传递给 writeDB.php 的内容。如果有一个 ul 列表 - 没问题。当有 2 个或更多时,总是通过 item[]=111、item[]=222 等的最后一个列表。可排序始终有效
-
我仍然看到请求发生。不过没关系,Deefour 似乎已经解决了。