【发布时间】: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。只需要一个小时,两顶,然后这样做几乎可以立即为您节省时间。