2016-12-12 43 views
0

我知道,以避免對DOM樹多次搜索jQuery的元素,這是一個好主意,保存所選元素,以提高性能加入已被選定的

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); 

但是這樣,我的代碼不是非常乾燥。

如果我不跟着他們保存到變量的方法,我的代碼變得更幹,但效率較低

$('.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); 
+2

這是**值得**你的時間來閱讀通過[jQuery API](http://api.jquery.com)從頭到尾。這隻需要一個小時,兩個上面,然後這樣做幾乎可以立即節省您的時間。 –

回答

0

也許並不奇怪,你用add

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

哦,好吧。這比我想象的要容易。謝謝! –