2011-05-17 48 views
2

我想知道用戶是否停止按下按鈕。所以我捕獲$ button.mouseup(...)和$ button.mouseout(...)事件。但是,我希望mouseout事件只在用戶仍然按下鼠標時才起作用 - 否則,只要用戶通過按鈕,就會觸發它。檢查鼠標事件是否關閉 - jQuery

任何想法?

+0

你可以只設置一個全局變量在mousedown上'true'並在'mouseout'上獲得這個值。 – pimvdb 2011-05-17 16:55:33

回答

8

檢查e.which,表示按下按鈕。

+0

美麗,這幫了我很多。 – 2011-10-08 22:12:18

1

一個快速和骯髒的方法是使用全局變量(或關閉;給予某種方式既mouseupmouseout功能訪問相同的變量):

var mouseIsUp = true, 
    onMouseUp = function() { 
     mouseIsUp = true; 
     // ... 
    }, 
    onMouseDown = function() { 
     mouseIsUp = false; 
    }, 
    onMouseOut = function() { 
     if (!mouseIsUp) { 
      // ... 
     } 
    }; 
+0

我不確定在鼠標移出mousedown事件和mouseup事件之間的原始元素的情況下會起作用。 – Alnitak 2011-05-17 17:25:46

+0

@Alnitak我認爲我打錯了條件檢查。那是你在說什麼? – sdleihssirhc 2011-05-17 17:27:59