2009-10-01 14 views
0

我有一個選擇列表的網絡界面:一對在它們之間具有一對按鈕(左箭頭和右箭頭)選擇元素。用戶可以在兩列之間移動項目,例如通過選擇左列中的一個選項並單擊右指箭頭。從選擇框中拖動所有選定元素的副本 - 可能嗎?

現在我有一個增強請求:有人想能夠在兩列之間拖動和掉落的物品,而不是點擊一個按鈕。我最初的兩個選擇框設置的問題是,只要我點擊其中一個突出顯示的選項來啓動拖動,所有其他選定的選項都將被取消選擇。使用jQuery,我將mousedown事件處理程序附加到了選擇框和每個在事件對象上調用preventDefault()的單個選項,但這僅僅是不夠的。在Firefox 3上,點擊選項會立即失去焦點,但所有其他選項仍然被取消激活,而在IE6上(我遺憾地仍然需要支持),它沒有任何區別。

所以我想我可以用列表元素或申報單或東西也許創建一個選擇框的合理的傳真。我可以創建一些可以在Firefox上使用的合理外觀,但在IE6上,如果我按住Shift鍵並單擊僞選擇對象的某個元素(以便選擇一系列選項),IE會選擇所有位於I點擊和我點擊的最後一個地方。再次,我已經將preventDefault-mousedown,mouseup和click處理程序連接到了所有涉及的元素,但它無濟於事。

我甚至試圖覆蓋在我原來的選擇框和我的僞選擇對象既透明的div,想攔截鼠標點擊和手動管理的選擇,但我不能讓它在IE瀏覽器。如果我使用選擇框,我無法防止點擊改變選擇,如果我使用的文本看起來像一個選擇元素,我不能阻止它選擇一個文本的範圍內按住Shift鍵。

有一些通用的解決方案,還是我只是運氣不好?

回答

0

我結束了與 「不可選擇」 屬性去。

0

退房的jQuery UI的可排序的兩個連接排序列表:http://jqueryui.com/demos/sortable/#connect-lists

這只是:

$('.selector').sortable({ connectWith: '.otherlist' }); 
+0

感謝您的指針!這不完全是我所需要的,因爲我必須能夠讓用戶選擇多個選項(可能幾百個),移動一次全部,但在周圍的頁面的源代碼戳我注意到一個HTML屬性「不可選擇」我會從未聽說過。它僅限MS,並防止選擇文本,這可能只是讓我的僞選擇對象在IE上正常工作的事情。 – Sean 2009-10-01 20:13:07

+0

我有一個可排序的列表和一個空的可排序列表,拖放用戶可以用另一個列表中的項目填充空列表。也許這種UI有幫助? – powtac 2009-10-01 20:18:56