javascript - Chrome 一次又一次地触发 OnBlur
问题描述
这是仅在 chrome 中一次又一次触发 Onblur 的代码,在 IE 中运行良好。在 Firefox 中,问题出现在创建两个输入元素时......有人可以帮我解决这个问题吗?我想要模糊警报(在实际代码中,我们检查表中的重复项并在发现重复项时发出警报,此代码只是一个示例,证明了我的需要)并且在警报框中单击“确定”后,我想得到焦点回来了。请查看 IE 中的正确行为。
$(document).ready(function() {
$("button").click(function() {
$("div").append('<input type="text" name="txtCompanyName" maxlength="100" class="Company" style="margin-bottom:0px;width:170px"/>')
});
// With on():
$("div").on("blur", ".Company", function() {
alert($(this).text());
$(".Company").focus();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<div></div>
<button>generate new element</button>
</body>
</html>
有趣的事情-当 chrome 开始重复触发事件并且您厌倦了一次又一次按“确定”,然后移动到 Chrome 中的其他选项卡,然后返回此选项卡单击“确定”,该模糊实例的问题得到解决. 魔法??
解决方案
$("div").on("blur", ".Company", function() {
alert($(this).text());
$(".Company").focus();
})
焦点和模糊实际上是相反的。因此,如果您的焦点偏离(模糊),那么您将其焦点设置回公司,并且公司被附加到一个 div 中。所以它无限循环。
推荐阅读
- android - 当多个包注册到同一个广播接收器时会发生什么?
- session - Laravel 6.0 写入会话时出错 ias 无法在 Windows 中打开文件流
- android - React Native Modal 关闭多点触控(Android)
- python - 如何将整数列表列表转换为整数列表 Python?
- jquery - 第二次验证失败时未显示工具提示
- php - 如何使用 API 响应验证用户并登录他?
- elasticsearch - ES , Group By field ORDER by date
- javascript - 选择下拉列表时如何自动填充文本框
- swift - 从 coreData 与 Array.sort 检索时使用 sortDescriptors 是否存在性能差异?
- javascript - 仅当满足条件时才在 'fetch' 中执行 'then'