2012-08-22 85 views
3

我想知道如何在原生javascript中拖動&下拉菜單。我在寫一個簡單的javascript函數來實現它。它有效,但不正確。如何正確停止mousemove事件?

http://jsfiddle.net/FKM5S/

當你慢慢移動白盒向黑盒,白盒停止按設計。當你移動白盒足夠快時,它實際上與黑盒重疊。

在我的javascript代碼中,我檢查白框是否與黑盒重疊,然後返回false。

var beforeMovePassed = this.callbacks.beforeMove(); 

if(beforeMovePassed) 
{ 
    return false; 
} 

我不完全確定它爲什麼會發生。

如何正確停止事件,使白框與黑盒不重疊,無論您的拖動速度如何?

回答

2

注意事件處理函數不是針對每個更改都調用的,在調用之間ms有一些限制,並且取決於很多因素。

因此,只要您每次檢查白盒子時都比較黑暗,而且如果是這樣的話,那麼請將您的自己移動到正確的位置。

0

我不知道

但是儘量在這種情況下使用event.preventDefault(),你必須有事件對象的引用。

希望它能工作!

+0

它不工作。 – Moebius