我的应用程序允许您使用jQueryUI.Sortable()的拖放功能来保存列表的顺序。为了在移动设备(Android,Chrome)上实现触摸事件,我添加了TouchPunch并且拖动部分有效。
.update()事件在移动设备上不起作用。当物品被放下并重新排序时,我会进行AJAX调用以将订单保存在服务器上。
在移动设备上,此呼叫永远不会发生。在台式机上,它可以正常工作。
这是JS:
$(document).ready(function() {
// Configure the sortable list
$( "#sortable" ).sortable({
axis: "y",
cursor: "move",
opacity: 0.8,
scroll: true,
containment: "parent",
update: function( event, ui ) {
var new_pri = ui.item.index() + 1
var item_id = ui.item.data("itemid")
var post_url = "/item/"+item_id+"/insert"
$( "#status_"+item_id ).toggleClass("fas fa-cog fa-spin")
$.ajax({
type: "POST",
url: post_url,
data: {"new_pri": new_pri},
success: function(data) {
$( "#status_"+item_id ).toggleClass("fas fa-cog fa-spin")
},
dataType: "html"
})
},
});
$( "#sortable" ).disableSelection();
// End sortable list config
});
我无法找到任何文档来将touch-punch hack绑定或别名化到jquery函数。有人知道任何解决方法吗?
P.S。老实说,我认为任何.sortable()选项都不起作用(包含性,不透明性等),但是以后可以处理。现在,我只是想让“更新”正常工作。