我可以在Jquery上使用变量吗
我在一个div中有3个按钮,我想将相同的click侦听器添加到所有按钮中。我在这些按钮上有一些操作,所以我首先将它们作为变量保存在函数的请求中,然后我想使用这些变量添加on侦听器。有办法吗? HTML如下所示:我可以在Jquery上使用变量吗,jquery,variables,click,Jquery,Variables,Click,我在一个div中有3个按钮,我想将相同的click侦听器添加到所有按钮中。我在这些按钮上有一些操作,所以我首先将它们作为变量保存在函数的请求中,然后我想使用这些变量添加on侦听器。有办法吗? HTML如下所示: <div class="wrapper"> <button class="a"></button> <button class="b"></button> <button class="c">
<div class="wrapper">
<button class="a"></button>
<button class="b"></button>
<button class="c"></button>
</div>
使用add函数
$aBtn.add($bBtn,$cBtn).on('click', func);
您可以使用.add()
/
var$wrapper=$('.wrapper'),
$aBtn=$wrapper.find('.a'),
$bBtn=$wrapper.find('.b'),
$cBtn=$wrapper.find('.c');
//我想要什么
$($aBtn).add($bBtn).add($cBtn).on('click',func));
函数func(){alert($(this).attr(“class”)}
A.
B
C
以下代码不使用变量,但有时您可以简单地在包装多个元素的选择器上绑定事件
$('.wrapper button').on('click', func);
有了这段代码,每个按钮都附加了一个事件处理程序。
当您单击某个元素时,该引用将与此JSFIDLE中显示的元素类似:
作为变量的替代,您甚至可以链接事件处理程序
$('.wrapper button').on('click', func).on('blur', func);
var$wrapper=$('.wrapper'),
$aBtn=('.wrapper.a'),
$bBtn=('.wrapper.b'),
$cBtn=('.wrapper.c');
//有效但不太整洁的解决方案
//$('.wrapper.a、.wrapper.b、.wrapper.c')。在('click',func');
//我想要什么
$($aBtn+”、“+$bBtn+”、“+$cBtn.)。在('click',func');
函数func(){
警报($(this).text())
}
1.
2.
3.
注意:add
接受多个参数,并且在开始时不需要使用$()
(add
返回一个新对象,它不会修改它的调用):$aBtn.add($bBtn).add($cBtn).on(…)
非常正确,这只是一个老习惯:)对于我描述的特定问题,这可能是一个很好的解决方案,但如果在包装下有更多的按钮,而您不希望侦听器附加到这些按钮,则必须为这些按钮指定一个新类。但我完全明白你的意思。@LilacEilim:的确。我通常将处理程序附加到具有特定data-*属性的元素上(很少使用带有js-*前缀的特定类)
$('.wrapper button').on('click', func).on('blur', func);