我使用“可排序”脚本(http://farhadi.ir/projects/html5sortable/)在我的Web应用程序上有一个可排序的项目列表。分拣部分效果很好。但现在,我需要能够ping回我的服务器,以便在事情发生变化时设置顺序。
捕获该事件的方法是:
$('.sortable').sortable().bind('sortupdate', function() {
//Triggered when the user stopped sorting and the DOM position has changed.
});
如何了解新职位以通知我的服务器? 由于列表很小,我想到了两种方法:
1 - 了解项目被拖动的位置,查看下方的位置并向我的服务器发送某种“插入”更新功能,以便将新项目插入该位置。
2 - 只需浏览列表中的所有项目,按顺序捕获其ID并将新ID列表发送到服务器,并让服务器根据该列表重新构建索引。
我可以处理ruby代码,但我是JS / Jquery的灾难。
因此,如果我选择选项1 - 如何识别新项目的位置以及如何识别其下方的项目?
如果我选择选项2 - 如何按照它们所处的确切顺序(它们的DOM顺序)迭代所有li项目,以便我可以构建此列表并将其发送回服务器?
答案 0 :(得分:1)
在触发更新时读取lis的id
var ids = $(".sortable").find("li").map( function(txt, elem){
return elem.id
} ).get();
console.log(ids);