我有一个事件处理程序,我希望在该事件的默认javascript处理发生后执行。
这可能吗?
编辑: 例如: 每次触发按键事件时,我都会记录有关该按键的事件信息(类似于console.log)。现在,当我按退格键并通过事件处理程序查看字段内容时,文本字段的值产生没有退格的值,因为事件处理程序在实际删除最后一个字母之前抓取字段的内容。
在这种情况下,我希望发生默认的退格事件,然后在完成时触发我的事件处理程序。
谢谢!
答案 0 :(得分:4)
我认为您的问题是由于听取了按键事件而不是keyup事件引起的。基本上这意味着你在将字符放入dom之前获得textarea的值。
尝试将keypress处理程序更改为keyup处理程序。
一个例子是:
$('input, textarea').keyup(function(ev) {
console.log( $(this).val() );
});
修改:找到了this问题,这似乎是您的确切问题。
答案 1 :(得分:0)
这是一种在事件冒泡到浏览器后运行自定义代码的方法,即首先将输入的值添加到文本字段中,然后在一秒钟之后运行自定义函数。如果你愿意的话,你可以减少这个时间。
$("input").on("keypress", function () {
setTimeout(function () {
alert("new value should have been already added to text field. Now we are executing some custom stuff");
}, 1000);
return true;
});