jQuery-3.事件篇---鍵盤事件


jQuery鍵盤事件之keydown()與keyup()事件

鼠標有mousedown,mouseup之類的事件,這是根據人的手勢動作分解的2個觸發行為。相對應的鍵盤也有這類事件,將用戶行為分解成2個動作,鍵盤按下與松手,針對這樣的2種動作,jQuery分別提供了對應keydown與keyup方法來監聽

keydown事件:

當用戶在一個元素上第一次按下鍵盤上字母鍵的時候,就會觸發它。使用上非常簡單,與基本事件參數處理保持一致,這里使用不在重復了,列出使用的方法

//直接綁定事件
$elem.keydown( handler(eventObject) )
//傳遞參數
$elem.keydown( [eventData ], handler(eventObject) )
//手動觸發已綁定的事件
$elem.keydown()

 

keyup事件:

當用戶在一個元素上第一次松手鍵盤上的鍵的時候,就會觸發它。使用方法與keydown是一致的只是觸發的條件是方法的

 

注意:

  • keydown是在鍵盤按下就會觸發
  • keyup是在鍵盤松手就會觸發
  • 理論上它可以綁定到任何元素,但keydown/keyup事件只是發送到具有焦點的元素上,不同的瀏覽器中,可獲得焦點的元素略有不同,但是表單元素總是能獲取焦點,所以對於此事件類型表單元素是最合適的。

 <h2>keydown()與keyup()事件</h2>
    <div class="left">
        <h4>測試一</h4>
        <div class="aaron">監聽keydown輸入:
            <input class="target1" type="text" value="" /><br />
            按下顯示輸入的值:<em></em>
        </div>
        <h4>測試二</h4>
        <div class="aaron">監聽keyup輸入:
            <input class="target2" type="text" value="" /><br />
            松手顯示輸入的值:<em></em>
        </div>
    </div>

    <script type="text/javascript">
    //監聽鍵盤按鍵
    //獲取輸入的值
    $('.target1').keydown(function(e) {
        $("em:first").text(e.target.value)
    });

    //監聽鍵盤按鍵
    //獲取輸入的值
    $('.target2').keyup(function(e) {
        $("em:last").text(e.target.value)
    });

    </script>

 

jQuery鍵盤事件之keypress()事件

在input元素上綁定keydown事件會發現一個問題:

每次獲取的內容都是之前輸入的,當前輸入的獲取不到

keydown事件觸發在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,得到的是觸發鍵盤事件前的文本,而keyup事件觸發時整個鍵盤事件的操作已經完成,獲得的是觸發鍵盤事件后的文本

當瀏覽器捕獲鍵盤輸入時,還提供了一個keypress的響應,這個跟keydown是非常相似,這里使用請參考keydown這一節,具體說說不同點

keypress事件與keydown和keyup的主要區別

  • 只能捕獲單個字符,不能捕獲組合鍵
  • 無法響應系統功能鍵(如delete,backspace)
  • 不區分小鍵盤和主鍵盤的數字字符

總而言之,

KeyPress主要用來接收字母、數字等ANSI字符,而 KeyDown 和 KeyUP 事件過程可以處理任何不被 KeyPress 識別的擊鍵。諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。

 

  <h2>keypress()事件</h2>
    <div class="left">
        <div class="aaron">監聽keypress輸入:
            <input class="target1" type="text" value="" /><br />
            輸入中文測試,無法顯示:<em></em>
        </div>
    </div>

    <script type="text/javascript">
    //監聽鍵盤按鍵
    //獲取輸入的值
    $('.target1').keypress(function(e) {
        $("em").text(e.target.value)
    });



    </script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM