2013-03-28 132 views
1

我知道mouseentermouseleave的用法。下面是我的代碼示例:Mouseenter和MouseLeave同時觸發

$('div').mouseenter(function(e){ 
    ... 
}).mouseleave(function(e){ 
    ... 
    //let say it will take 5 second. 
}); 

但我的問題是,是否有可能有兩個處理程序在同一時間觸發,如果我快速移動鼠標?我的意思是mouseleave沒有完成,同時mouseenter被觸發,因爲鼠標只是感動。

更新

在我的例子,我的意思是,如果mouseleave後3秒鼠標移動已被觸發,它也會觸發mouseenter?如果是這樣,是不是意味着同一個DOM元素觸發器mouseenter並同時離開?謝謝。

+0

不可能在**完全相同的時間觸發它們,但觸發器後面的事件可能會重疊並不罕見。 – magi182 2013-03-28 06:50:32

+0

如果事件確實很快發生,它使它看起來併發。我會建議你使用''hover()'。閱讀 - http://stackoverflow.com/questions/15663818/element-fades-in-out-more-than-once-on-mouseover/15664084#15664084 – kiddorails 2013-03-28 06:55:23

+0

'懸停'是不是我想要的。謝謝。 – 2013-03-28 06:59:15

回答

3

不可能同時觸發兩個事件。由於javasript不是多線程的。如果你想要把執行之間有一些延遲,您可以使用setTimeout

+0

請查看更新。謝謝。 – 2013-03-28 06:58:30

+0

檢查我更新的答案。 – Adil 2013-03-28 07:03:38

+0

它會使代碼不好玩....謝謝。 – 2013-03-28 07:06:17

1

沒有....沒有叫這兩個在同一時間函數的possibbilities ....你不能爲

足夠快
+0

>>我的意思是mouseleave沒有完成,同時mouseenter被觸發!<< 他意味着接下來的事件堆棧。 – magi182 2013-03-28 06:51:20

+0

如果事件堆棧,然後他提供的代碼應該這樣做..... – bipen 2013-03-28 06:54:24

+0

請檢閱更新。謝謝。 – 2013-03-28 06:57:28