我試圖使用 jQuery 的可排序功能。但是有一個錯誤。當包含父位置設定為relative時,我向下滾動。它不會作業。與另一個元素發生碰撞后,它將再次開始作業。在那之前,它將被放置在很遠的地方。下次我嘗試對任何其他元素進行排序時,它將正常作業。
這里有一個演示
復制:https ://jsfiddle.net/agef2ypo/
代碼很簡單
$(".sortable").sortable({
items: '.sortme',
containment: "parent",
tolerance: "pointer"
});
我嘗試觸發手動更新事件。它沒有用。我現在能做什么?謝謝
uj5u.com熱心網友回復:
如果您洗掉可排序的元素,您的JSFiddle 就可以作業。position: relative;
$(".sortable").sortable({
items: '.sortme',
containment: "parent",
tolerance: "pointer"
});
/*
// === Wrong in JSFiddle
$(".sortable").sortable({
items: '.sortme',
containment: "parent",
tolerance: "pointer"
}).css('position', 'relative');
*/
更新
有點棘手但有效。本質上,我模擬了 1px 的第一次拖放移動。
這需要一個外部庫來實作simulateMIT 許可下的功能:
- GitHub鏈接
- CDN鏈接
這是 JSFiddle 上的結果
JS代碼:
$(".sortable").sortable({
items: '.sortme',
containment: "parent",
handle: '.move',
tolerance: "pointer",
helper: 'clone',
create: function(event, ui) {
let el = $(this).find('.sortme:first .move');
el.simulate("drag", {
dx: 1,
dy: 1
});
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/430894.html
