我尝试使用jQuery Sortable并且有效:)
所以我发现HERE使用mousedown和mouseup来取消按钮的方法,但是列表的计数是错误的,例如,我的列表中有4个项目但是当我移动一个时,只有3个重新排序
完整的代码:
$(function() {
var isDragging = false;
$("#sortable").mousedown(function() {
isDragging = false;
})
$("#sortable").mousemove(function () {
isDragging = true;
})
$("#sortable").mouseup(function () {
var order = $("#sortable").sortable('serialize');
var r = $("#sortable").sortable("toArray");
var a = $("#sortable").sortable("serialize", {
attribute: "id"
});
console.log(r, a);
$.ajax({
data: order,
type: 'POST',
url: 'salvar.php', // save.php - file with database update
success: function (order) {
},
});
var wasDragging = isDragging;
isDragging = false;
if (!wasDragging) {
$("#throbble").toggle();
}
});
});
HTML:
<ul id="sortable">
<li class="ui-state-default" id="item-1">1</li>
<li class="ui-state-default" id="item-2">2</li>
<li class="ui-state-default" id="item-3">3</li>
<li class="ui-state-default" id="item-4">4</li>
运行代码: Running Code
答案 0 :(得分:0)
只需使用events排序本身提供的。比较容易,然后尝试自己实现:
$('#sortable').on('sortupdate', function() {
// Send to server
});