jQuery第一次不触发事件

时间:2018-07-13 10:44:02

标签: javascript jquery google-chrome firefox

当我在Chrome / Firefox的开发控制台中使用jQuery的trigger()函数时,它的行为不像我期望的那样,但是奇怪的是,它似乎在IE中可以正常工作。

这是一个简单的例子:

function test() {
  $("body").on("focus", ".text-input", function(e) {
    console.log("focus")
  })
  $(".text-input").trigger("focus")
  $(".text-input").trigger("focus")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" class="text-input" />
<button onclick="test()">Test</button>

如果我只打开它并单击按钮,则会在所有3个浏览器中的控制台上看到2个“焦点”,与预期的一样。

如果相反,我重新加载页面并从控制台执行test(),我仍然在IE中看到2个“焦点”,但是Chrome和Firefox仅打印一个。任何进一步执行test()都会在所有浏览器中显示两个焦点。

有人知道发生了什么事吗?

浏览器版本:
铬67.0.3396.99
火狐57.0.4
IE 11

0 个答案:

没有答案