給出兩個最簡單的連接排序,如何在旅途中禁用jQuery連接的排序?
問題(已更新)。當一個可拖動的物品離開它的容器時,容器不應該在物品仍然被拖拽時接受它(就像容器被禁用一樣)。在DOM級別上,佔位符不應移回到原始容器。
這怎麼實現?
的代碼在此jsfiddle
不能按預期工作,但應該是一個很好的起點。
給出兩個最簡單的連接排序,如何在旅途中禁用jQuery連接的排序?
問題(已更新)。當一個可拖動的物品離開它的容器時,容器不應該在物品仍然被拖拽時接受它(就像容器被禁用一樣)。在DOM級別上,佔位符不應移回到原始容器。
這怎麼實現?
的代碼在此jsfiddle
不能按預期工作,但應該是一個很好的起點。
我是工作在你的代碼上jsfiddle,我改變了它
$("ul").sortable({
connectWith: "ul",
items: "li:not(.ui-state-disabled)",
cancel: "ui-state-disabled",
out: function (e, ui) {
ui.item.addClass("ui-state-disabled");
}
}).disableSelection();
不幸的是,事實並非如此。所需的行爲是,您仍然可以將該項目拖到原始容器上,但這根本不會影響容器,就好像它已禁用。 – mcmlxxxiii 2011-03-03 20:14:34
我放棄了... :(我不行。問題是佔位符:( – Joseadrian 2011-03-03 23:08:05
無論如何謝謝你的努力 – mcmlxxxiii 2011-03-04 13:38:42
也許這會做...
$("#origin").sortable({
connectWith: '.destination'
}).disableSelection();
$(".destination").sortable({
connectWith: ".destination",
}).disableSelection();
起源列表可以拖動到任意的目的地清單但不能回到自己。
不,不是這樣,關鍵是「拖動」,實際上,在使用例如'$(this).sortable('disable')'拖動時,沒有任何連接的sortable可以被禁用,無論是起源地址還是其他地址,並且我正在尋找解決方法 – mcmlxxxiii 2011-03-03 20:51:30
This在拖拽的時候是非常棘手的,無論如何,如果用戶點擊它但將其拖到屏幕上,例如它需要在某個地方結束,那麼它需要一個目標位置。實際上並沒有將它拖到其他列表之一? – MikeM 2011-03-03 21:23:57
我想一個技巧可能是在原始容器頂部放置一個隱形的div塊,你必須用z-indexes玩弄,但這可能是解決方法。 – MikeM 2011-03-03 21:28:53
您希望在什麼時候阻止原始容器接受可拖動項目?一旦你點擊拖拽並且處於拖拽狀態,或者在它被拖拽到目的地之後,你就不想將它拖回去? – MikeM 2011-03-03 20:17:56
我很樂意在項目被拖動時阻止接受。但無論如何,其他連接的可排序項仍應接受可拖動的項目。 – mcmlxxxiii 2011-03-03 20:24:15
那麼,如果我們拖出一些東西並將它放在兩個可排序對象之外的地方,會發生什麼?它被刪除?順便說一下*「當可拖動的物品離開它的容器時,容器不應該在物品仍然被拖動時接受它」* - 這是一個模糊的描述。如果物品「被拖動」,則不需要任何人接受它。當物品放置在某處時,接受是一個問題。 – 2016-07-01 07:37:51