經過與這個問題的鬥爭和鬥爭後,我別無選擇,只能尋求幫助!我的情況是這樣的:我有一些絕對定位元素。每個元素都有自己的屬性「top」和「left」。我遇到的巨大問題是當我嘗試對項目進行排序時。JQuery Sortable - 對絕對定位的元素和佔位符進行排序
$(".container").sortable({
containment: ".container",
cursor: 'move',
items: '.element',
helper: 'clone',
placeholder: 'new-placeholder',
forcePlaceholderSize: true,
tolerance: 'pointer',
revert: true,
scroll: false,
start: function(event, ui) {
event.stopPropagation();
$(".new-placeholder").css("left", ui.helper.position().left);
$(".new-placeholder").css("top", ui.helper.position().top);
$(".new-placeholder").css("height", ui.helper.height());
$(".new-placeholder").css("width", ui.helper.width());
},
change: function(event, ui) {
console.log("Placeholder index: " + ui.placeholder.index());
}
}).disableSelection();
這是Current Behavior,這是Expected behavior
正如你所看到的,這些元素應該改變自己的立場,當拖動的元素是超過。有沒有更好的方法來做到這一點?我無法擺脫絕對的位置,這是主要問題。我知道解決方案必須在更改,更新和停止方法上,但我無法自己弄清楚。
到目前爲止,我所得到的只是在項目被拖拽到另一個元素上時獲取佔位符的新索引,但是¿我怎樣才能改變佔位符的位置並根據該元素對其餘元素進行排序?
我也用絕對定位的元素。我永遠無法使它與排序工作。我必須爲我的可排序對象創建一個新的佈局管理器,以便它能夠和原始絕對定位的佈局一樣(實際上比其更好)。 –
@ greg-pettit謝謝你的回答!我仍然試圖讓它工作。你能給我一些方法的想法來實現你說的解決方案嗎?我應該擺脫排序嗎?據我所知,可排序的方法根本不適用於絕對位置。即使我使用相對位置,如果我使用JQuery設置頂部和左側屬性,排序後的結果就是一團糟。 巨大的感謝提前! –