0

我有两个具有相同属性的功能。但我不知道如何合并到一个合并函数中,我厌倦了谷歌搜索但不知道这个关键字的确切含义

$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();
});

它对我来说工作正常。但我只是想让它更小更漂亮。

4

3 回答 3

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'

于 2013-11-09T08:53:30.627 回答
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 。

于 2013-11-09T09:02:55.833 回答
0
$test        =   $('.slider li a');

$test.click(function(e) {
    e.preventDefault();
    sliderHandler.slideFirst();
    if ($(this).parent().hasClass('slide1'))
        alert("1");
});
于 2013-11-09T08:53:39.590 回答