0

同じプロパティを持つ2つの関数があります。しかし、1つの統合関数にマージする方法がわかりません。グーグルで検索するのにうんざりしていますが、これのキーワードが正確にはわかりません

$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 に答える