jQuery,使用上下文菜单粘贴后删除焦点

时间:2014-05-18 20:23:48

标签: javascript jquery paste

我希望在使用上下文菜单粘贴后删除对输入的关注,这是我的代码:

// 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 + VCommand + V包含keyup keydown事件。但是上下文菜单中的粘贴。

你知道这样做的方法吗?

2 个答案:

答案 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);
});