当我在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