我在绑定(bind)了 focus() 和 blur() 事件的页面上有一个文本输入。如果我按照以下步骤操作,我会遇到焦点和模糊意外触发的问题:
- 点击输入,focus() 触发。好的。
- 在另一个窗口中点击窗口外,blur() 触发。好的。
- 单击返回原始窗口,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/