2012-08-24 78 views
4

我想,以確保選擇以下非常原始的行爲:JQuery用戶界面可選擇 - 如何自定義其行爲

  1. 禁用套索選擇完全,無論只觸及切換(點擊)
  2. 做到底是什麼按Ctrl時完成—例如取消選擇所選內容並選擇未選中的項目,釋放用戶保持Ctrl鍵。

我試圖建立一種籃子—當它打開它的內容顯示和一些項目被突出顯示。然後用戶選擇更多或取消選擇其他人,提交表單。就這樣。

我與Selectable進行了相當長的一段時間,這是一段非常聰明的腳本,但我似乎無法達到這個基本要求。當顯示錶格時,用戶需要按住Ctrl鍵,否則已經選擇的項目會丟失。

回答

3

我回答了類似的一天,我認爲解決你的問題的第一部分 - How to select multiple items using mouse click?。這允許左鍵單擊或套索來選擇/取消選擇,而不需要Ctrl鍵。

不過,看在demo,我對這個問題產生,通過增加

tolerance: 'fit' 

的選擇,似乎通過套索,我認爲解決你的問題的第2部分禁用的選擇。

最後,如果您使用jQueryUI主題,則還需要重寫套索樣式。相關的主題的規則是:

.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 

和像

.ui-selectable-helper { display:none } 

應該做它的東西。

Updated demo

+0

謝謝,正是我需要的 – Dima

+1

這不你說什麼它。據我所知,'寬容:'fit'是關於套索是否需要包圍一個元素來選擇它。 –

+0

@Sahuagin對於這個問題它確實有幫助,因爲開始選擇物品並設法用套索將其完全包圍是非常困難的。當時顯然已經足夠好了。這不是一個防彈的解決方案,因爲根據可選項目的大小和形狀,仍然可以套索。 – andyb

4

這是easiert不使用可選的所有:

$('ul > li').click(function() { 
    $(this).toggleClass('ui-state-highlight'); 
});