我有:

<input type="text" />


$('input').blur(function(){
    alert('stay focused!');
});

我想通过单击 anchor 元素来防止“模糊”时运行模糊功能。

即如果我切换到其他输入,请单击页面上的某处,等等,我希望模糊触发,但是如果我单击链接,则不希望其触发。

这是容易实现的,还是我需要与代表和信号灯相处?

谢谢

最佳答案

我今天也必须自己解决这个问题。我发现mousedown事件在blur事件之前触发,因此您所需要做的就是设置一个变量,该变量指示mousedown事件首先发生,然后适当地管理您的blur事件。

var mousedownHappened = false;

$('input').blur(function() {
    if(mousedownHappened) // cancel the blur event
    {
        alert('stay focused!');
        $('input').focus();
        mousedownHappened = false;
    }
    else   // blur event is okay
    {
        // Do stuff...
    }
});

$('a').mousedown(function() {
    mousedownHappened = true;
});

希望这对您有帮助!!

关于jquery - 单击jQuery中的链接时如何防止blur()运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7621711/

10-12 00:54