0

我有一个新手语法问题,这是我的代码:

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

现在,如果我想将 mouseenter 和 touchstart 事件绑定到同一个函数怎么办?我知道我可以这样做:

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

但我喜欢我的第一个例子的外观。(我的想法是否正确,只是我的示例中的语法不同?)还有谁知道我可以在哪里查找这些东西?jQuery API 只展示了一种写东西的方式。

4

2 回答 2

4

如果两个事件绑定到同一个函数,那么将它们绑定到同一个函数!

如果您创建两个具有相同主体的匿名函数,您将使用比您需要的更多的内存,因为您实际上将创建两个单独的函数。

从这个意义上说,您的两个示例在语义上并不相同。

或者,在外部声明回调函数(即不作为匿名函数)并使用第一种语法:

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(){

    }

如果您想为这两个事件定义不同的功能,请采用这种方法。

如果两者的功能相同,那么您的代码应该可以工作..

于 2012-12-12T17:08:14.977 回答