我希望在使用上下文菜单粘贴后删除对输入的关注,这是我的代码:
// Starting with bind the paste event
$('#input').bind('paste', function(){
// Set timeout 1 second after the paste event was run
setTimeout(function(){
// Here is the problem, this code does not remove the focus
$(this).blur();
// Also, I try this but nothing happend
// $('#input').blur();
}, 1000);
});
顺便说一句,Ctrl + V
或Command + V
包含keyup keydown事件。但是上下文菜单中的粘贴。
你知道这样做的方法吗?
答案 0 :(得分:0)
我认为"this"
背景错误。
在现有函数中运行新函数时,此上下文会更改。
您可以保存jquery对象并稍后传递它,例如:
$('#input').bind('paste', function(){
var self = this;
setTimeout(function(){
$(self).blur();
}, 1000);
});
答案 1 :(得分:0)
你在setTimeout函数中遇到问题。 setTimeout中的this
是错误的。试试这个:
$('#input').on('paste', function () {
var element = $(this);
setTimeout(function () {
$(element).blur();
}, 1000);
});