如何使用JavaScript或jQuery选择和取消选择多个元素?

时间:2012-02-18 10:34:04

标签: javascript jquery

我目前正在使用一些在线编辑器,我希望有能力选择多个元素(所有这些相同的类),同时按住ctrl键 - 就像在大多数程序中然后对它们做一些操作 - 例如。对齐。

我想要实现的第二件事就是当我点击某个地方时能够取消选择所有 - 如果在元素上,那么除此之外,如果在所有元素之外,那么所有元素。

我试图将它们插入到表中,如果它们被单击然后执行一些操作 - 仅对该表中的对象进行操作,但后来我不知道如何使用ctrl按钮选择它们如果有的话

我在点击外部对象时也试过这个功能:

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

但它也不起作用。

那么,有没有人知道其他任何方式来执行此操作?

这是我想要实现的一个例子(你必须点击Advanced Editing) - 我的意思是编辑器右上角的对齐列表。当你按下一个对象时,也会取消选择对象,然后按ctrl选择。

http://www.vistaprint.com

感谢您的帮助和想法。

1 个答案:

答案 0 :(得分:1)

我建议您使用Event delegation: 您在某个容器上附加了一个click事件处理程序,其工作方式如下:

  1. 如果ctrl按钮未按,请清除所有选择(也许您将所有选定的项目保留在某个列表中 - 只需将其全部删除)。
  2. 如果在某个可以选择的元素上发生了单击(您可以通过event.target确定单击了哪个元素,请参阅上面提到的文章)选择那个(添加到列表中)。
  3. 关于ctrl按钮: 您需要keydown和keyup事件处理程序。在其中一个中,您将一些isCtrlPressed变量转换为true,将另一个变为false