我有兩個列表,一個ID爲「vlist」,另一個ID爲「hlist」。 「vlist」包含應該可見的元素,而「hlist」包含應該保持隱藏的項目。這裏的想法是允許系統的管理員指定哪些元素/字段應該在註冊頁面上顯示,哪些不應該顯示。這兩個列表使用「connectWith」連接,因此管理員可以將項目從可見列表拖到隱藏列表中(反之亦然)。從jQuery的可排序列表中排除一個或多個元素(使用connectWith)
我的兩難境地是我想要將鎖定在可見列表中,但仍然可以在該列表中排序。例如,「用戶名」,「電子郵件」和「密碼」字段應該鎖定在可見列表中(因爲它們總是需要用於註冊)。
這甚至可能嗎?也許我現在還沒有發現,這是不言而喻的。我已經瀏覽了jQuery的文檔了一段時間,似乎無法找到與此場景相關的任何內容。我已經找到了如何從列表中的特定元素「完全排序」或者甚至被禁止成爲可放棄的目標,但是這並不能實現。用戶應該仍然能夠將這些項目拖動到「可見」列表中,以防他們想要調整鎖定字段的排序。我也知道你可以在特定元素或DOM對象中包含可排序元素,但這也不能使用,因爲這似乎只適用於整個可排序列表,而不適用於該列表的特定元素。
我甚至想看看我是否建立了排序上市(S)後,像這樣的工作:
$('#vlist > #slist-li-username').sortable('option', 'containment', '#vlist');
顯然,沒有工作,要麼否則我不會被張貼本。
如果可能有幫助,我想我會拋出現在使用的代碼;這裏是jQuery代碼:
$(function()
{
$('#vlist, #hlist').sortable
({
connectWith: '.signup-set_flist',
forcePlaceholderSize: true,
receive: function (event, ui)
{
var itemID = ui.item.attr('id');
var fID = itemID.replace(/slist-li-/g, '');
var hID = 'slist-' + fID;
if (ui.sender.attr('id') == 'vlist')
{
$('#'+hID).val('');
}
else
{
$('#'+hID).val(fID);
}
}
}).disableSelection();
$('#vlist > #slist-li-username').sortable('option', 'containment', '#vlist');
});
而且作爲HTML,我將它上傳到這裏(因爲StackOverflow上似乎打破,當我將其粘貼在這裏 - 甚至在代碼模式):
http://sikosoft.net/jquery-sort-connect.html
謝謝!這正是我一直在尋找的:)我有一個'複雜'的設置,其中UL內的LI可以在此UL內的子UL中拖動(反之亦然),並且次UL也可以在主UL中拖動但不應允許次級UL在其他次級UL內拖動。 – 2014-01-14 14:32:49
太好了。奇蹟般有效。給予好評! – 2016-03-18 07:11:30