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"); } });
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。