当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。