click事件和mousedown事件在jquery中一般來說是容易分清楚的,但在某些情況下開發者會優先考慮到click事件,而沒能準確的定位事件。當我們在取得滑鼠各個鍵的事件值時,就會出現這樣的情況。
簡單的概念區分:
click:是指滑鼠放在某一個網頁元素上時,對該元素觸發了點擊動作,這個過程即click事件。 .click()可以呼叫一個回應函數,對click事件發生時進行回應,產生一些動作。
mousedown:指你的手指點按下滑鼠上的任一鍵,還沒有放開時的過程,這個過程其實不包括鍵被按下的那一瞬間,這一瞬間是非常短的,mousedown是你按下之後不放開,一直按著的過程。這個過程可以很漫長,和mouseup相比有明顯的差異。
最簡單的區分兩個事件的方法即,一個發生在電腦螢幕上,一個發生在滑鼠上。
那麼我們在遇到一些具體問題的時候,應該怎麼選擇這兩個不同的事件呢?舉一個很簡單的例子:我點擊了一個展開按鈕展開了某元素,現在,我需要一個點擊該元素之外的其他區域讓它自動收起來。
看起來很簡單,我們一看到「點擊」二字時首先想到的是如何使用click事件完成這個目標。然而我卻選擇了mousedown事件,因為在這個過程中,我考慮到只有用戶點擊滑鼠左鍵觸發該動作才是用戶想要的結果,用戶並不想在點擊中鍵或右鍵時也有同樣的效果,這時我們需要用到一個event.which的判斷,在對which的判斷時會遇到非常大的問題,具體請看這篇文章和這篇文章,click事件的觸發器並沒有which的屬性,而只有mousedown或mouseup的觸發器(滑鼠)才有,因此如果要使用which屬性,最好考慮的是mousedown/mouseup事件,而非click事件。
以上是jquery事件中mousedown和click如何區分?的詳細內容。更多資訊請關注PHP中文網其他相關文章!