javascript / jQuery调用函数_after_事件已完成并返回

时间:2012-01-20 05:02:05

标签: 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。)

2 个答案:

答案 0 :(得分:3)

改为使用keyUpkeyDown在输入之前被触发; keyUp被解雇了。

答案 1 :(得分:0)

Hello Friend试试看,你会得到它

$('textbox').keyDown(function(e){
  ...
  console.log(String.fromCharCode(e.which));   
});

这显示了你按下的键。

希望这能解决您的问题