因此,当我重新排序列表时,只要我放下项目,它就会将位置提交给我的后端代码,并在后端重新排序列表。但是,我遇到的情况是,如果我重新排序非常快,一段时间后前端和后端的列表不再同步。所以我想在我放下片刻后立即禁用拖动以避免竞争条件。
function reorder(panelId, type){
$(escapeClientId(panelId)).sortable({
start: function(event, ui){
ui.item.startPos = ui.item.index();
},
stop: function(event, ui){
//submit my start and end position to the server
//change the cursor to wait
$('body').css('cursor', 'wait');
window.setTimeout(wait,600);
}
});
$(escapeClientId(panelId)).disableSelection();
}
function wait(){
$('body').css('cursor', 'default');
}
如您所见,我将光标更改为wait
光标 600 毫秒,但是即使光标处于等待模式,它仍然允许用户拖动以重新排序。有没有办法在我放下后立即完全禁用拖动?