2013-02-05 132 views
1

我有一個div這是一類=「模式」,我寫的jQuery的一個功能,關閉時我按「ESC」這個div:模式關閉按鈕

$(document).keypress(function (e) { 
    if (e.keyCode == 27) { 
     if ($('.modal:visible > .icon32').length) $('.modal:visible > .icon32')[0].click(); 
    } 
}); 

一切都運行完美,在Firefox ,但在鉻不,可能會導致這個問題?

+0

提示:嘗試自己調試更多。什麼不起作用?按鍵,keyCode,點擊功能?添加斷點並逐步添加或添加console.log行以查看程序從預期路線中斷的位置。 – Iftah

回答

2

我觀察到keypress在IE中也存在問題。使用keydown事件。當按鍵被按下時,keydown事件發生。緊接着發生按鍵事件。當你釋放鍵盤鍵盤事件發生時。

$(document).keydown(function (e) { 
    if (e.keyCode == 27) { 
     if ($('.modal:visible > .icon32').length) $('.modal:visible > .icon32')[0].click(); 
    } 
}); 
+0

這是一個正確的解決方案。 Chrome出於某種原因處理'keypress'問題... – vyakhir

+0

非常感謝! – peter