2012-12-12 17 views
0

我有一个新手语法问题,这里是我的代码:上的jQuery()语法

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

现在,如果我想绑定的mouseenter和touchstart事件相同的功能是什么?我知道我可以做到这一点:

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

但我喜欢我的第一个例子的外观。 (我是否正确地认为它只是我的例子中的语法不同?)还有谁知道我可以在哪里查找这些类型的东西? jQuery API只能显示一种写作方式。

回答

4

如果两个事件绑定到相同的功能,然后绑定他们同样的功能!

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

在这个意义上,你的两个例子是而不是语义相同。

另外,声明回调函数一次外(即不是作为一个匿名函数),并使用第一语法:

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

$(el).on({ 
    mouseenter: cb, 
    touchstart: cb 
}); 
+0

OP知道这一点,并询问是否有方法使用第一种语法绑定到相同的函数。 – BoltClock

+0

刚刚刷新,我现在看到它。 – BoltClock

+0

当然,这很有道理。谢谢Alnitak! –

1

尝试这种方式

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

    function move(){ 

    } 

如果你想这两个事件的这个方法去定义不同的功能。

如果功能上是相同的,然后你的代码应该工作..

+0

或只是'的mouseenter:move' - 没有必要的'额外的层函数()'块。 – Alnitak