我使用jQuery UI的語氣和我的應用程序使用一對夫婦必然模態的對話框熱鍵預防的keyPressed。jQuery UI的模式,對話框:在對話框打開
這是我的工作jsfiddle example和代碼:
$(document).keypress(function(e){console.log("pressed a key: " + e.which);})
var dialog = $('#modal-dialog')
.dialog({ modal: true, autoOpen: false, buttons: [{text:"ok"}] });
.keypress(function(e){console.log("cought!"); e.stopPropagation()})
$("#bt").click(function(){dialog.dialog("open")})
當一個模式對話框打開時,它應該抑制從DOM樹向上行進到文檔/窗口中的keyPressed事件。 當輸入元素具有焦點在stopPropagation踢(不與按鈕工作)。 否則然而事件傳播。
解決此問題的最佳方法是什麼?
我注意到的事情是的keydown,KEYUP和按鍵事件通常是由模態對話框受阻,但如果返回或逃生造成對話框關閉,則在DOM中觸發KEYUP事件,因爲該對話框在KEYDOWN事件中關閉。 – kbro