如果我在JavaScript中爲按鈕設置了mousedown事件,當我按下按鈕時它會觸發。如果我設置了一個點擊事件,它會在我釋放按鈕時觸發。所以我可以隨時通知按鈕的狀態。但是,如果使用鍵盤「按下」按鈕(例如,通過使用選項卡選擇按鈕,然後按空格鍵按下按鈕),我不會收到任何事件。但是,當我釋放空格鍵時,我得到了單擊事件。當按鈕按下按鈕時,在HTML按鈕上捕獲mousedown事件
看來我可以將一個按鍵事件附加到按鈕上,然後通過查看按下的按鍵並確保它是空格鍵,我可以模擬mousedown,也就是說,我可以告訴按鈕被按下。但是,這假定空格鍵是被按下的關鍵;在另一個瀏覽器或操作系統上,情況可能並非如此。我想我可以簡單地檢查一下按鈕是打開還是關閉,但是我必須保持一些與鼠標事件共享的狀態,否則鼠標可能已經按下了按鈕,並且在鼠標關閉時觸摸了不相關的按鍵。
我還沒有找到任何具體說明如何處理這種情況。我已經嘗試過改變事件,但它從未發生過火災。理想情況下,我希望只要按鈕的狀態發生變化就會觸發單個事件,而不管它如何變化。或者,有兩個單獨的事件,一個是狀態改變爲按下狀態,另一個是狀態改變爲未按下狀態時,也可以接受,因爲我可以將它們結合起來模擬前者。
@MrJack我感興趣的是如何做到這一點沒有jQuery的 – Michael
jQuery是開源的,你可以只下載的開發。版本和去那個特定的功能,這就是我的意思,但重新閱讀時,我聽起來像別的東西。 –
瞭解。在一般情況下,我更喜歡避免jQuery的答案,因爲它首先假設,jquery正是我正在做的事情(我可能不得不做額外的工作來確認它),然後如果它確實需要挖掘瞭解它是如何做到的。 – Michael