HTML
<div id="myform"> Name:<input /> Email:<input /> </div>
jQuery(1)
$(document).keydown(function(e){
//keyCode為ESC
if (e.keyCode == 27) {
$("#myform").hide("slow");
}
});
我們透過document來為網頁注冊一個keydown事件,如果使用者focus在網頁上,然後由鍵盤有按下任何一個「鍵」,就可以由e.keyCode來得到一個數字,然後依這個數字,我們就可以寫對應的Code。
keyCode請參考:http://unixpapa.com/js/key.html
另外,我也能使用JavaScript中String物件的fromCharCode方法來得到文字內容,而不是數字。
JavaScript
function keyText(e) {
// e.which 取得keyCode的數字
// String.fromCharCode將keyCode轉換成對應的文字
if (window.event) // IE
{
keynum = e.keyCode
}
else if (e.which) // Netscape/Firefox/Opera
{
keynum = e.which
}
alert(String.fromCharCode(keynum) + ":按鍵被按下了");
return true;
}
document.onkeydown = keyText;
但以上JavaScript程式在IE8上會有問題,這也顯示出來一個重點,jQuery在跨Browser上的處理能力比傳統的JavaScript好上許多。如果你是資深的網頁程式開發人員就會知道這種痛,同一支程式,還要先去判斷是IE和非IE,是IE走A,不是IE走B,但有了jQuery可以大大減少這種不必要的幸苦路。
最後,我們再來修改一下jQuery程式,顯示一下我們所按下的按鍵文字(0-9,a-z能正常顯示),記得在IE及Firefox都測試看看。
jQuery(2)
$(document).keydown(function(e) {
alert(String.fromCharCode(e.keyCode) + ":按鍵被按下了");
//27為ESC
if (e.keyCode == 27) {
$("#myform").hide("slow");
}
});
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。