合并具有相同属性的两个函数

时间:2013-11-09 08:50:38

标签: javascript jquery

我有两个具有相同属性的函数。但我不知道如何合并一个合并功能,我厌倦了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();
});

它对我来说很好。但我只想让它更小更好。

3 个答案:

答案 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");
});
相关问题