JavaScript 确认在某些操作系统上陷入无限循环的模糊/焦点事件

标签 javascript jquery confirm

我有this jsfiddle JavaScript 确认框。这也是片段:

$('#txtTestOne, #txtTestTwo').on('blur', function(e) {
  var retval = confirm('Do you really want to go there?');
  if (!retval) {
    e.target.focus();
  } else {
    e.relatedTarget.focus();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="text" id="txtTestOne" autofocus>
<input type="text" id="txtTestTwo">

这在我的笔记本电脑 (OS X 10.6.8) 上运行良好,并在 Chrome 和 Opera 中进行了测试。然而,当我在运行 OS X 10.11.6 的台式机上测试它时,我发现确认框在 Chrome 和 Safari 中陷入无限循环(在做出选择后不断重新显示窗口)。

我也添加了代码片段,以确保这不是 jsfiddle 的问题,不,不是。代码片段和 jsfiddle 的行为相同。

由于该问题存在于一个操作系统上的两个不同浏览器中,而另一个操作系统上的两个浏览器中不存在该问题,因此这似乎不太可能是浏览器问题。我也不认为我的代码有任何问题,但只有知道之后才能知道。

我做错了什么,还是确认方法存在某种我不知道的问题?另外,如果它在您的计算机上正确运行,也许您会在评论中提及您正在运行的操作系统。

最佳答案

给你,伙计,我修好了。我在使用 Chrome 时也遇到了无限循环问题,但现在应该可以在我希望的所有浏览器中按照您的预期工作

$('.input').on('click', function(e) {
  count++;
  var retval = confirm('Do you really want to go there?');
  if (!retval) {
    $('.input').not(e.target).focus();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtTestOne" class="input" autofocus>
<input type="text" id="txtTestTwo" class="input">

不,抱歉,焦点模糊不起作用,没有正确测试

关于JavaScript 确认在某些操作系统上陷入无限循环的模糊/焦点事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504720/

相关文章:

jquery - 给导航链接数据文本属性,其中包含链接文本

Javascript/jQuery - 根据 <option> 的变量索引创建数组

c# - c#中的条件确认框

javascript - 在删除数据库中的数据之前通过onclick传递变量进行确认

javascript - 从 Vue.js 组件数据中导入的辅助类调用函数

javascript - jQuery 未加载我的 HTML

显示为 0 长度的 Javascript HTML 集合

javascript - jQuery - 组合 "confirm"和 "someOtherAction"

javascript - Google 图表 - 能否将柱形图中的柱与图表的中心对齐?

javascript - 根据路径距离的分数从具有多个点的路径获取坐标