.keyup()
.keyup( handler(eventObject) ) 返回: jQuery
描述: 为 "keyup" 事件绑定一个处理函数,或者触发元素上的 "keyup" 事件。
-
version added: 1.0.keyup( handler(eventObject) )
handler(eventObject)每次事件触发时会执行的函数。
-
version added: 1.4.3.keyup( [ eventData ], handler(eventObject) )
eventData将要传递给事件处理函数的数据映射。
handler(eventObject)每次事件触发时会执行的函数。
version added: 1.0.keyup()
这个函数的第一种用法是 .bind('keyup', handler)
的快捷方式,第二种用法是 .trigger('keyup')
的快捷方式。
当用户在一个元素上释放按键的时候,keydown
事件就会发送给这个元素。它可以绑定到任何元素,但该事件只是发送到具有焦点的元素上。在不同浏览器之间聚焦元素可以有很多,但是表单元素总是能获取焦点,所以对于此事件类型表单元素是最合适的。
举个例子,看下面的代码
<form> <input id="target" type="text" value="Hello there" /> </form> <div id="other"> Trigger the handler </div>
这个事件处理程序可以绑定到input field:
$('#target').keyup(function() { alert('Handler for .keyup() called.'); });
现在当光标插入点位于表单域并一个键被按下并且释放时,警告将被显示:
Handler for .keyup() called.
当不同的元素被点击时我们也可以触发这个事件:
$('#other').click(function() { $('#target').keyup(); });
这些代码执行后,点击Trigger the handler同样警报显示。
如果需要任何按键被捕获(例如,要实现网页全局上的快捷键),附加此事件到document
对象是非常有用的。由于事件冒泡,所有的按键将使他们DOM方式注册到document
对象上,除非明确停止。
要确定哪个键被按下,我们可以检测传递给处理函数的event 对象。而浏览器使用不同的属性来存储这些信息,jQuery的规范了.which
属性,以便我们能够可靠地使用它来检索关键代码。此代码对应一个键盘上的按键,包括想箭头这种特殊键的代码,为捕获实际输入文本, .keypress()
可能是一个更好的选择。
Example:
Show the event object for the keyup handler when a key is released in the input.
<!DOCTYPE html>
<html>
<head>
<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="http://code.jquery.com/jquery-latest.min.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="/scripts/events.js"></script>
<script>
var xTriggered = 0;
$('#target').keyup(function(event) {
if (event.keyCode == '13') {
event.preventDefault();
}
xTriggered++;
var msg = 'Handler for .keyup() called ' + xTriggered + ' time(s).';
$.print(msg, 'html');
$.print(event);
});
$('#other').click(function() {
$('#target').keyup();
});</script>
</body>
</html>