加载中...

keydown()


概述    keydown( handler(eventObject) )

返回值:jQuery

描述:为 "keydown" 事件绑定一个处理函数,或者触发元素上的 "keydown" 事件。

  • V : 1.0.keydown( handler(eventObject) )

    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • V : 1.4.3.keydown( [eventData ], handler(eventObject) )

    • eventData
      类型: PlainObject
      一个对象,它包含的数据键值对映射将被传递给事件处理程序。
    • handler(eventObject)
      类型: Function()
      每次事件触发时会执行的函数。
  • V : 1.0.keydown()

    • 这个方法不接受任何参数。

这个方法的前两个用法是 .bind('keydown', handler) 的快捷方式,第3个不带参数的用法是 .trigger('keydown') 的快捷方式。

当用户在一个元素上按下键盘上的键的时候,keydown事件就会发送给这个元素。 如果按下该键不放(保持按下状态),事件被重复发送到该键,时间间隔取决于操作系统。它可以绑定到任何元素,但该事件只是发送到具有焦点的元素上。不同的浏览器中,可获得焦点的元素略有不同,但是表单元素总是能获取焦点,所以对于此事件类型表单元素是最合适的。

举个示例,看下面的代码:

  1. <form>
  2. <input id="target" type="text" value="Hello there" />
  3. </form>
  4. <div id="other">
  5. Trigger the handler
  6. </div>

这个事件处理函数可以绑定在输入框上:

  1. $('#target').keydown(function() {
  2. alert('Handler for .keydown() called.');
  3. });

现在当光标插入点位于表单域并一个键被按下,警告将被显示:

Handler for .keydown() called.

调用不带参数的.keydown(),我们可以手动触发这个事件:

  1. $('#other').click(function() {
  2. $('#target').keydown();
  3. });

这些代码执行后,点击Trigger the handler同样警报显示。

如果需要任何按键被捕获(例如,要实现网页全局上的快捷键),那么把这个事件附加到document对象上是非常有用的。所有的按键事件都会沿着各自的 DOM 树冒泡到 document 对象上,除非明确停止。

要确定哪个键被按下,我们可以检测传递给处理函数的event 对象。而浏览器使用不同的属性来存储这些信息,jQuery的规范了.which属性,以便我们能够可靠地使用它来检索关键代码。此代码对应一个键盘上的按键,包括像方向键这种特殊键的代码,如果要捕获实际输入文本, .keypress()可能是一个更好的选择。

Additional Notes(其他注意事项):

  • .keydown()方法只是作为.on( "keydown", handler )的一个速记写法,移除该事件可以使用.off( "keydown" )

示例

当一个按键在文本框内被按下的时候显示事件对象

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. fieldset { margin-bottom: 1em; }
  6. input { display: block; margin-bottom: .25em; }
  7. #print-output {
  8. width: 100%;
  9. }
  10. .print-output-line {
  11. white-space: pre;
  12. padding: 5px;
  13. font-family: monaco, monospace;
  14. font-size: .7em;
  15. }
  16. </style>
  17. <script src="http://code.jquery.com/jquery-latest.js"></script>
  18. </head>
  19. <body>
  20. <form>
  21. <fieldset>
  22. <label for="target">Type Something:</label>
  23. <input id="target" type="text" />
  24. </fieldset>
  25. </form>
  26. <button id="other">
  27. Trigger the handler
  28. </button>
  29. <script type="text/javascript" src="/resources/events.js"></script>
  30. <script>
  31. var xTriggered = 0;
  32. $('#target').keydown(function(event) {
  33. if (event.which == 13) {
  34. event.preventDefault();
  35. }
  36. xTriggered++;
  37. var msg = 'Handler for .keydown() called ' + xTriggered + ' time(s).';
  38. $.print(msg, 'html');
  39. $.print(event);
  40. });
  41. $('#other').click(function() {
  42. $('#target').keydown();
  43. });</script>
  44. </body>
  45. </html>

运行一下


还没有评论.