我需要调用一个函数来检查之后的表单输入框的keyDown事件及其所有对应的回调处理程序是否已完成并返回。我知道我需要这个,因为如果我在回调处理程序中放置一个计时器,该处理程序在200毫秒左右后检查输入框的值,该值与预期的一样,但如果我在回调处理程序本身的末尾检查该值,空。javascript/jQuery调用函数_after_事件已完成并返回
// 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。)
为什么不显示您尝试过的代码? – AmGates
@AmGates:完成。 – Suan
我所看到的是你正试图解决的问题(是的Alt + U escenario)在FF中不可行,因为这种交互被OS中断。我的意思是,按alt按钮可以听,但是当它与'u'键结合时,看起来浏览器完全被系统中断。但在Chrome中,你可以得到这个组合。 – Davsket