代码之家  ›  专栏  ›  技术社区  ›  Vincent

JQuery-一个使用变量处理多个元素的处理程序

  •  4
  • Vincent  · 技术社区  · 14 年前

    var $a = $('#a'),
        $b = $('#b');
    

    如何使用$a和$b重写下面的行?

    $('#a, #b').click(function(e){...});
    
    4 回复  |  直到 14 年前
        1
  •  6
  •   Darin Dimitrov    14 年前
    $([$a.get(0), $b.get(0)]).click(function(e) { ... });
    
        2
  •  3
  •   Matthew Flaschen    14 年前
    $a.add($b).click(function(e){...});
    

    add 返回包含并集的新节点集$b可以是“$()接受的几乎任何东西”

        3
  •  0
  •   Pedro Soares    12 年前

    $(deleteBtn).add(copyBtn).add(moveBtn).click(function(){});
    

    就像这里说的 http://api.jquery.com/add/

        4
  •  -1
  •   fredrik    14 年前

    取决于你下一步想对你的战友做什么。

    你可以把它们定义为一个:

    var $a = $('#a, #b');
    $a.click()
    

    或者单独使用:

    /* This way the click event is applied even if each selector returns
       more then one element. And $a and $b is preserved */
    $([].concat($a.toArray()).concat($b.toArray())).click(function () {
        console.log(this)
    });
    

    编辑

    更新的代码。

    …弗雷德里克