Hai*_*ood 2 javascript arrays jquery jquery-selectors
可以说我有三个按钮
<button data-action="grow" class="resizeButton">Grow</button>
<button data-action="shrink" class="resizeButton">Shrink</button>
<button id="normalButton">Normal Button</button>
Run Code Online (Sandbox Code Playgroud)
我有变量按钮
var $normalButton = $('#normalButton');
var $growButton = $('.resizeButton[data-action="grow"]');
var $shrinkButton = $('.resizeButton[data-action="shrink"]');
Run Code Online (Sandbox Code Playgroud)
现在可以说,我要挂钩了mouseenter,mouseleave和click事件处理程序的正常按钮
$normalButton.on({
mouseenter: function(){
//do some stuff
},
mouseleave: function(){
//reverse some stuff
},
click: function(){
//do some more stuff
}
});
Run Code Online (Sandbox Code Playgroud)
神奇的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);
Run Code Online (Sandbox Code Playgroud)
要么
$.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
}
});
});
Run Code Online (Sandbox Code Playgroud)
但我想知道的是,是否有一个语法来创建一个jQuery对象,或者只是将处理程序应用于一组缓存的选择器像$([$growButton, $shrinkButton]).on(...或类似?