给定样本标记:
<div> <input /> <input /> <input /> </div>
如何通过jQuery来确定div已经失去焦点?
我可以使用focusout(),但这不是我需要的.通过关注,它将被触发为输入到输入的一个选项卡,因为它实际上是通过事件冒泡来检测输入正在失去焦点.
另一种说明要求的方法:我需要知道焦点何时移动了外部的div.
以前我问过类似的问题:
jquery focusin() and preventing bubbling
但是这与一个弹出式UI相关联,可以通过在其后面插入一个空白DIV并将点击/焦点事件作为触发器来实现,但这对于这种情况将不起作用.
$(".myobject").focusout(function(element) { if(!($(this).focusin())){ console.log('doYourThing ' + $(this)); } });
唉,这不行(我猜这是因为它在焦点事件中评估焦点,因此还没有检测到焦点.
任何聪明的解决这个问题?我可能会错过一个本来的jQuery事件,正是我正在寻找的?
更新:
其实简化的问题:
我需要等价于$(‘div’).blur(),但实际上可以在div上工作(因为模糊不能从div触发)
解决方法
那么,将“焦点”处理程序绑定到所有内容中可能会有什么工作,而且你知道什么时候不在< div>当您在其他地方获得“焦点”活动时.
$('body').live('focus',(function() { var inDiv = false; return function(e) { if ($(this).closest('#theDiv').length) inDiv = true; else { if (inDiv) alert("just lost focus!"); inDiv = false; } }; });
原文地址:https://www.jb51.cc/jquery/179722.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。