當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


JQuery .keyup()用法及代碼示例

用法
.keyup( handler ) => jQuery

說明:將事件處理程序綁定到 "keyup" JavaScript 事件,或在元素上觸發該事件。

  • 添加的版本:1.0.keyup( handler )

    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.4.3.keyup( [eventData ], handler )

    • eventData
      類型:Anything
      包含將傳遞給事件處理程序的數據的對象。
    • handler
      類型:Function(Event eventObject)
      每次觸發事件時執行的函數。
  • 添加的版本:1.0.keyup()

    • 此簽名不接受任何參數。

此方法是前兩個變體中.on( "keyup", handler ) 和第三個變體中.trigger( "keyup" ) 的快捷方式。

當用戶釋放鍵盤上的鍵時,keyup 事件將發送到元素。它可以附加到任何元素,但事件僅發送到具有焦點的元素。可聚焦元素在瀏覽器之間可能會有所不同,但表單元素總是可以獲得焦點,因此是此事件類型的合理候選者。

例如,考慮 HTML:

<form>
  <input id="target" type="text" value="Hello there">
</form>
<div id="other">
  Trigger the handler
</div>

事件處理程序可以綁定到輸入字段:

$( "#target" ).keyup(function() {
  alert( "Handler for .keyup() called." );
});

現在,當插入點位於字段內並且按下並釋放一個鍵時,將顯示警報:

.keyup() 的處理程序被調用。

要手動觸發事件,請應用不帶參數的.keyup()

$( "#other" ).click(function() {
  $( "#target" ).keyup();
});

這段代碼執行後,點擊觸發處理程序也會提醒消息。

如果需要捕獲任意位置的按鍵(例如,在頁麵上實現全局快捷鍵),將此行為附加到 document 對象很有用。由於事件冒泡,除非明確停止,否則所有按鍵都會沿 DOM 向上到達 document 對象。

要確定按下了哪個鍵,請檢查傳遞給處理函數的事件對象。雖然瀏覽器使用不同的屬性來存儲這些信息,但 jQuery 標準化了 .which 屬性,因此您可以可靠地使用它來檢索關鍵代碼。此代碼對應於鍵盤上的一個鍵,包括箭頭等特殊鍵的代碼。對於捕獲實際文本輸入,.keypress() 可能是更好的選擇。

其他注意事項:

  • 由於 .keyup() 方法隻是 .on( "keyup", handler ) 的簡寫,因此可以使用 .off( "keyup" ) 進行分離。

例子:

當在輸入中釋放一個鍵時,顯示 keyup 處理程序的事件對象(使用簡單的 $.print 插件)。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>keyup demo</title>
  <style>
  fieldset {
    margin-bottom: 1em;
  }
  input {
    display: block;
    margin-bottom: .25em;
  }
  #print-output {
    width: 100%;
  }
  .print-output-line {
    white-space: pre;
    padding: 5px;
    font-family: monaco, monospace;
    font-size: .7em;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<form>
  <fieldset>
    <label for="target">Type Something:</label>
    <input id="target" type="text">
  </fieldset>
</form>
<button id="other">
  Trigger the handler
</button>
<script type="text/javascript" src="/resources/events.js"></script>
 
<script>
var xTriggered = 0;
$( "#target" ).keyup(function( event ) {
  xTriggered++;
  var msg = "Handler for .keyup() called " + xTriggered + " time(s).";
  $.print( msg, "html" );
  $.print( event );
}).keydown(function( event ) {
  if ( event.which == 13 ) {
    event.preventDefault();
  }
});
 
$( "#other").click(function() {
  $( "#target" ).keyup();
});
</script>
 
</body>
</html>

演示:

相關用法


注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .keyup()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。