2012-02-18 105 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