2017-05-31 46 views
0

我正在使用jQueryUI模式dialog小部件來模擬「警報」框。這一切都按預期工作,鍵盤輸入被阻止,而對話框打開,除非如果我關閉與RETURNESCAPE鍵對話框,然後我得到一個流浪的「按鍵」事件擊中我的應用程序。爲什麼會發生這種情況,當模態對話框應該阻止所有輸入?jQueryUI模式對話框不會阻止RETURN keyup事件(或ESCAPE)

這裏有一個的jsfiddle證明了問題 - https://jsfiddle.net/kmbro/x7w6hLtg/ - 這裏的一些代碼,使StackOverflow的幸福有關的jsfiddle鏈接:-)

$("<div/>").dialog({ modal: true, ... }); 

雖然dialog()似乎是罪魁禍首允許ESCAPE「KEYUP 「事件泄漏,我不認爲它是負責RETURN。這似乎集中在如何通過按鍵生成按鈕「單擊」事件,因爲它們在「keydown」上觸發,而使用空格鍵按下按鈕會觸發「按鍵」上的「click」,因此對話框已關閉在「keyup」事件發生之前。您可以通過按Click Me查看此信息!按鈕按Tab鍵並按下返回 - 對話框在「keydown」打開。如果使用SPACE而不是按鈕,則直到釋放密鑰時的「密碼」纔會打開對話框。

問題是,有什麼特別的關於RETURN觸發「keydown」而不是「keyup」的「點擊」事件?

回答