【问题标题】:Join jQuery elements that are already selected [duplicate]加入已经选择的jQuery元素[重复]
【发布时间】:2016-12-12 09:31:34
【问题描述】:

我知道要避免在 DOM 树上进行多次搜索,最好保存所选元素以提高性能

var $el = $(".el");
$el.show();
...
...
$el.show();
...
...
$el.on('click', function(){...});

但是现在我有几个项目分隔在变量中,我想有时在其中几个中执行相同的操作,有时对它们执行不同的操作。我当然可以这样做:

var $button1 = $('.button1');
var $button2 = $('.button2');
...
...
$button1.on('click', doSomething);
$button2.on('click', doSomethingDifferent);
...
...
$button1.css(newStyles);
$button2.css(newStyles);

但是这样一来,我的代码就不是很干了。

如果我不遵循将它们保存到变量中的方法,我的代码会变得更 DRY,但效率会降低

$('.button1').on('click', doSomething);
$('.button2').on('click', doSomethingDifferent);
...
...
$('.button1, .button2').css(newStyles);

有没有办法两全其美?

这是我想到的一些伪代码..

var $button1 = $('.button1');
var $button2 = $('.button2');
var $buttons = $.group($button1, $button2);
...
...
$button1.on('click', doSomething);
$button2.on('click', doSomethingDifferent);
...
...
$buttons.css(newStyles);

【问题讨论】:

  • 非常值得花时间从头到尾阅读the jQuery API。只需要一个小时,两顶,然后这样做几乎可以立即为您节省时间。

标签: jquery dry


【解决方案1】:

也许不出所料,你使用add

$button1.add($button2).add($button3).doSomething();

【讨论】:

  • 哦,好吧。这比我想象的要容易。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 2013-02-24
  • 2015-01-31
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
相关资源
最近更新 更多