2015-06-25 151 views
0

爲什麼我們在按下空格鍵時看不到警報(Chrome中警報功能的結果),而不是按下其他提供警報的鍵。爲什麼按下空格鍵時不顯示警報?

<input type=text onKeyPress="my_keypress($event);"> 

function my_keypress($event) { 
    var x = ($event.keyCode || $event.which); 
    var x_char = String.fromCharCode(x); 
    alert(
     'x: '+x + '\n' + 
     'x_char: ' + x_char + '\n' + 
     'altKey: ' + $event.altKey + ' ' + 
     'ctrlKey: ' + $event.ctrlKey + ' ' + 
     'shiftKey: ' + $event.shiftKey 
    ); 
} 
+0

彈出窗口!==警告.... – epascarello

+2

Chrome中發佈的代碼爲我提供了「Uncaught ReferenceError:$ event is not defined」的空間鍵和其他鍵。 –

+0

'my_keypress($ event);'<--- wrong – epascarello

回答

2

onKeyPress代碼應該my_keypress(event);(注意$符號刪除)。

當您按下空格並啓動警報時,警報將顯示,但會在空間釋放後立即關閉。如果你想看到你的警報,你必須保持空間按下。

如果您想調試onKeyPress事件,我建議您使用console.log而不是警報。 console.log會將輸出寫入控制檯日誌。