假设我有三个按钮
<button data-action="grow" class="resizeButton">Grow</button>
<button data-action="shrink" class="resizeButton">Shrink</button>
<button id="normalButton">Normal Button</button>
我有变量按钮
var $normalButton = $('#normalButton');
var $growButton = $('.resizeButton[data-action="grow"]');
var $shrinkButton = $('.resizeButton[data-action="shrink"]');
现在假设我想将mouseenter
,mouseleave
和click
事件处理程序连接到普通按钮
$normalButton.on({
mouseenter: function(){
//do some stuff
},
mouseleave: function(){
//reverse some stuff
},
click: function(){
//do some more stuff
}
});
神奇的jQuery向导让这对我们有用。
现在假设我们要将mouseenter
,mouseleave
和click
事件处理程序附加到增长按钮和缩小按钮。这些按钮的处理程序相同,但正常按钮的处理程序不同。
有几种方法我可以看到这样做,但它们基本上是相同的想法,只需分配两次,一次到第一个按钮,一次到下一个按钮。
所以,
var handlers = {
mouseenter: function(){
//do some different stuff
},
mouseleave: function(){
//reverse some different stuff
},
click: function(){
//do some more different stuff
}
};
$growButton.on(handlers);
$shrinkButton.on(handlers);
或
$.each([$growButton, $shrinkButton], function(i, el){
el.on({
mouseenter: function(){
//do some different stuff
},
mouseleave: function(){
//reverse some different stuff
},
click: function(){
//do some more different stuff
}
});
});
但我想知道的是,是否存在从中创建jQuery对象的语法,或者只是将处理程序应用于一组缓存的选择器,如$([$growButton, $shrinkButton]).on(...
或类似的?