Chrome一次又一次地点燃OnBlur

时间:2018-06-01 15:00:44

标签: javascript jquery html google-chrome firefox

这是仅在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();
    });
  });
&#13;
<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>
&#13;
&#13;
&#13;

有趣的事情 - 当chrome重复开始触发事件时你会感到厌倦了按下&#34; OK&#34;一次又一次,然后移动到Chrome中的其他选项卡,然后返回到此选项卡,单击&#34;确定&#34;,问题解决了该模糊实例。 MAGIC ??

1 个答案:

答案 0 :(得分:1)

$("div").on("blur", ".Company", function() {
  alert($(this).text());
  $(".Company").focus();
})

焦点和模糊实际上是对立的。因此,如果您的焦点(模糊),则将其焦点设置回公司,并将公司附加到div。所以它无限期地循环。