输入焦点并在窗口获得焦点时触发模糊

时间:2019-05-02 10:03:19

标签: javascript jquery

我在绑定了 focus() blur()事件的页面上输入了文本。我遇到一个问题,如果按照以下步骤操作,焦点会变得异常模糊:

  1. 单击输入,将触发 focus()。好吧。
  2. 在另一个窗口之外单击窗口,将触发 blur()。好吧。
  3. 在原始窗口上单击鼠标,依次单击 focus() blur()。问题!
$('#password').focus(function(){
    $('#passwordStrength').slideDown(500);
}).blur(function(){ 
    $('#passwordStrength').slideUp(500);
});

我真的需要在窗口重新获得焦点时不要触发 focus() blur()事件,因为这会导致div快速出现然后消失。 / p>

关于如何阻止这种情况的任何想法?

2 个答案:

答案 0 :(得分:1)

我最终通过检查文档是否具有焦点作为模糊功能的一部分来解决这个问题。

$('#password').focus(function(){
    $('#passwordStrength').slideDown(500);
}).blur(function(){ 
    if (document.hasFocus()) {
        $('#passwordStrength').slideUp(500);
    }
});

这意味着我的力量框在单击时会停留在页面上,然后在再次单击窗口时表现适当。

感谢评论者尝试提供帮助,并在正确的路径上向我发送邮件。

答案 1 :(得分:0)

您可以使用line.Replace(line.Split(' ').Last(), "NUM"); 来检测当前选项卡是否聚焦。

window.onfocus

fiddle