我有两个具有相同属性的函数。但我不知道如何合并一个合并功能,我厌倦了google它,但不知道这个关键字到底是什么
$test = $('.slider .pager li.slide1 a'),
$test1 = $('.slider .pagination li a')
$test.bind('click', function(e) {
e.preventDefault();
sliderHandler.slideFirst();
alert("1");
});
$test1.bind('click', function(e) {
e.preventDefault();
sliderHandler.slideFirst();
});
它对我来说很好。但我只想让它更小更好。
答案 0 :(得分:2)
为什么不试试?
$test = $('.slider .pager li.slide1 a,.slider .pagination li a'),
$test.bind('click', function(e) {
e.preventDefault();
sliderHandler.slideFirst();
alert("1");
});
在您的情况下,只需更新选择器以选择需要应用相同逻辑的 所有元素 。
更新: 如果它们已经是全局变量,我们可以尝试合并它们:
$.merge( $.merge( [], $test), $test1).bind('click', function(e) {
e.preventDefault();
sliderHandler.slideFirst();
});
正如@doubleswirve在下面的答案中指出的那样,我们也可以使用add
代替merge
:$test.add($test1).bind('click'
答案 1 :(得分:1)
如何使用jQuery .add
方法(类似于@Khanh TO的答案):
// Assuming these have already been declared
$test = $('.slider .pager li.slide1 a');
$test1 = $('.slider .pagination li a');
$test.add($test1).bind('click', function(e) {
e.preventDefault();
sliderHandler.slideFirst();
alert("1");
});
这是一个CodePen,展示了一个类似的例子。
答案 2 :(得分:0)
$test = $('.slider li a');
$test.click(function(e) {
e.preventDefault();
sliderHandler.slideFirst();
if ($(this).parent().hasClass('slide1'))
alert("1");
});