javascript/jQuery 在事件完成并返回后调用函数

标签 javascript jquery events

在 keyDown 事件及其所有相应的回调处理程序完成并返回之后,我需要调用一个函数来检查表单输入框的值。我知道我需要这个,因为如果我在回调处理程序中放置一个计时器,该计时器在 200 毫秒左右后检查输入框的值,则该值符合预期,但如果我检查回调处理程序本身末尾的值,其空。

// case 1
$('textbox').keyDown(function(){
  ...
  console.log($(this).val());   // empty, not as expected
});

// case 2
$('textbox').keyDown(function(){
  ...
  var $textbox = $(this);
  var timer = setTimeout(function(){
    console.log($textbox.val());    // works as expected
    clearTimeout(timer);
  }, 200);
});

那么,在 javascript/jQuery 中是否有一种干净的方法可以在事件完全完成后调用函数?

(是的,我知道 onChange 事件,但我已经尝试过了,但它不适用于这种情况。我正在尝试检测用户定义的组合键,这是一个极端情况。在这个极端情况下,keyPress 和 keyUp 事件也不会触发,只会触发 keyDown。)

最佳答案

请改用keyUpkeyDown 在输入之前触发; keyUp 之后被触发。

关于javascript/jQuery 在事件完成并返回后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936948/

相关文章:

javascript eval 方法语法

javascript - 位置固定;左边工作正常,右边不行

iphone - UI事件时间戳

c# - 在多播委托(delegate)上使用慢速 DynamicInvoke 的替代方法

.net - 线程事件处理 (C#)

javascript 表单提交在 chrome 中不起作用

javascript - 如何用额外的函数调用参数替换闭包变量以避免不断重新创建函数?

java - 从 jquery 调用 REST 服务

javascript - jQuery 点击功能不起作用

javascript - 尽可能多地打乱数组