0

初心者の構文に関する質問があります。これが私のコードです。

$('.selector').on({
  mouseenter: function() {
    // ...
  },
  mouseleave: function() {
    // ...
  }
});

mouseenter イベントと touchstart イベントを同じ関数にバインドしたい場合はどうすればよいでしょうか? 私はこれを行うことができることを知っています:

$('.selector').on('mouseenter touchstart', function(){
  // ...
});

しかし、私は最初の例の外観が好きです。(私の例で異なるのは構文だけだと思う​​のは正しいですか?)また、このようなことをどこで調べられるか知っている人はいますか?jQuery API は、一方向の書き方しか示していません。

4

2 に答える 2

4

2 つのイベントが同じ関数にバインドされている場合は、それらを同じ関数にバインドしてください。

同一の本体を持つ 2 つの無名関数を作成すると、実際には 2 つの別個の関数を作成することになるため、必要以上のメモリを使用することになります。

その意味で、2 つの例は意味的に同一ではありません

または、コールバック関数を外部で (つまり、無名関数としてではなく)宣言し、最初の構文を使用します。

var cb = function(ev) { ... }

$(el).on({
    mouseenter: cb,
    touchstart: cb
});
于 2012-12-12T17:08:28.680 に答える
1

こうやってみる

 $('.selector').on({
       mouseenter : move,
       touchstart : move
   });

    function move(){

    }

2 つのイベントに異なる機能を定義する場合は、この方法を使用します。

両方の機能が同じであれば、コードは機能するはずです..

于 2012-12-12T17:08:14.977 に答える