由于关闭页面单击,jquery事件触发了两次?
问题描述:
我知道这方面有很多疑问,但我的问题稍有不同。由于关闭页面单击,jquery事件触发了两次?
我有这必将对使用
$('body').on('blur', '#fielda, #fieldb, #fieldc, #fieldd', function(){
alert ('hello')
});
一个几个输入字段如果我在fielda
单击输入值,然后单击出来,我得到一个警报,
如果我点击进入fielda
,然后点击另一个不在我的浏览器中的应用程序触发第一个警报,我清除它,然后得到一个新的警报。
我该如何阻止这种情况发生。 我已经设置了一个简单的fiddle来展示这一点。
由于
答
尝试document.hasFocus()
Document.hasFocus()
该方法返回一个Boolean
值指示 文档内的文档或任何元素是否具有焦点。 此方法可用于确定 文档中的活动元素是否具有焦点。
$('body').on('blur', '#fielda', function() {
if (document.hasFocus()) {
alert('hello')
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="fielda" />
对我来说(丁目的Windows上最新发布版本),其不火的两倍,它只是不断射击,直到你关闭该窗口。 – DBS
你可以使用焦点事件来中断任何事件,当你进入一个领域时 – Manticore