js && Jquery 的回車事件

有時候咱們須要捕獲頁面上的回車事件,以達到一些特殊效果,例如在登陸頁面用戶輸入完登陸名和密碼後習慣直接敲回車,這時須要捕獲回車事件,在回車事件中激活form元素chrome

1.純Java Script版

首先要捕獲 document對象的按鈕彈起事件(捕獲按下事件也能夠),瀏覽器會將用戶按下的按鍵信息對象傳遞到事件回調函數中(以參數的形式),傳入函數中的這個按鍵信息中包含了一個用來識別按鍵的編號(每一個按鍵都有一個對應的編號),而回車按鍵對應的編號就是13,因此咱們取出按鍵信息對象中的這個編號,判斷它是否是13就能夠了,初始版本以下:瀏覽器

1 document.onkeyup = function (e) {//按鍵信息對象以函數參數的形式傳遞進來了,就是那個e
2     var code = e.charCode || e.keyCode;  //取出按鍵信息中的按鍵代碼(大部分瀏覽器經過keyCode屬性獲取按鍵代碼,但少部分瀏覽器使用的倒是charCode)
3     if (code == 13) {
4         //此處編寫用戶敲回車後的代碼
5     }
6 }

 

可這樣有個問題,在舊版IE下,按鍵信息對象並非直接傳遞到函數中的,全部的事件對象是存儲在window.event中的,因此爲了兼容舊版IE,咱們能夠先判斷一下window.event這個對象存在不存在,若存在,說明是舊版IE瀏覽器,若是不存在,說明是chrome、火狐之類的新式瀏覽器,改良版以下:函數

document.onkeyup = function (e) {
    if (window.event)//若是window.event對象存在,就以此事件對象爲準
        e = window.event;
    var code = e.charCode || e.keyCode;
    if (code == 13) {
        //此處編寫用戶敲回車後的代碼
    }
}

 

 

2.Jquery版

思路和純JavaScript代碼相似,不過Jquery實現起來可能更簡單一些,由於Jquery自己就已經在某些方面作了瀏覽器兼容性設置,因此代碼會比較簡潔一些spa

1 $(document).keyup(function (e) {//捕獲文檔對象的按鍵彈起事件
2     if (e.keyCode == 13) {//按鍵信息對象以參數的形式傳遞進來了
3         //此處編寫用戶敲回車後的代碼
4     }
5 });

轉自:曾經最美的記憶code

相關文章
相關標籤/搜索