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

标签 javascript jquery

我在绑定(bind)了 focus()blur() 事件的页面上有一个文本输入。如果我按照以下步骤操作,我会遇到焦点和模糊意外触发的问题:

  1. 点击输入,focus() 触发。好的。
  2. 在另一个窗口中点击窗口外,blur() 触发。好的。
  3. 单击返回原始窗口,focus() 和输入上的 blur() 都会触发。问题!
$('#password').focus(function(){
    $('#passwordStrength').slideDown(500);
}).blur(function(){ 
    $('#passwordStrength').slideUp(500);
});

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

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

最佳答案

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

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

这意味着我的强度框在点击离开时停留在页面上,然后在点击返回窗口时表现适当。

感谢评论者的帮助,让我走上了正确的道路。

关于javascript - 输入焦点并在窗口获得焦点时模糊触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950036/

相关文章:

javascript - 更新购物车。我想发送之前的数量和新的数量

javascript - 通过 AJAX 发送图像的问题

javascript - jquery 和 javascript 的闭包

javascript - 在 IE 中使用带有 xpath 查询的 axis 时出错

jquery - "magical"使用 jQuery 设置 HTML 元素的样式

javascript - 如何使用 jquery 对元素进行排序和定位

jquery - 使用 jQuery 的最佳引用资料是什么?

javascript - 使用 javascript 随时间滚动的动态条形图

javascript - Highcharts 不渲染小数据集

javascript - 在 Backbone Stickit 中结合使用 visible 和 onGet