2012-12-12 18 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