2012-02-18 75 views
0

我目前正在使用一些在線編輯器,我希望在那裏可以選擇多個元素(所有同一類),同時按住ctrl鍵 - 就像在大多數程序中一樣,然後對它們進行一些操作 - 例如。對齊。如何使用JavaScript或jQuery選擇和取消選擇多個元素?

我想要存檔的第二件事是當我點擊某處時能夠取消所有選擇 - 如果在元素上,那麼除了這個之外,如果在所有元素之外,則是所有元素。

我試圖將它們插入表中,如果他們被點擊,然後執行一些操作 - 只從這個表中的對象,但然後我不知道如何讓他們只能選擇與Ctrl按鈕,如果有任何。

我也曾嘗試在點擊之外的對象這樣的功能:

$('html').click(function(){ 
    alert("Deselect"); 
}) 

但無論是簡化版,工作。

那麼,有沒有人知道任何其他方式來執行此操作?

這裏是我想要達到的一個示例(您必須單擊Advanced Editing) - 我的意思是編輯器右上角的對齊列表。當你按下外部對象時,也會取消選擇對象,並按Ctrl選擇。

http://www.vistaprint.com

謝謝您的幫助和想法。

回答

1

我建議你使用Event delegation: 您的一些容器,它的工作原理如下附加一個單擊事件處理程序:

  1. 如果按住Ctrl鍵是按下,清除所有選擇(也許你把所有某些列表中的選定項目 - 只是將它們全部刪除)。
  2. 如果在可以選擇的某個元素上發生點擊(您可以通過event.target確定哪個元素被點擊,請參閱上面提到的文章),選擇那個元素(添加到列表)。

關於ctrl按鈕: 您需要一個keydown和keyup事件處理程序。在其中一箇中,您將另一個isCtrlPressed變量變爲true,即false

相關問題