如果您将光标放在第一个输入中,然后单击该按钮,您将收到一条消息。
如果您将光标放在第二个(使用setTimeout
),则会收到两条消息。
为什么第一个场景中没有显示“点击按钮”消息?
相反,setTimeout
是什么让第二个显示两个警报?
<html>
<head>
<script type='text/javascript'>
function testOne() {
alert('button was clicked');
}
function testTwo() {
alert ('focus left the input');
}
</script>
</head>
<body>
<input name="input1" onblur="testTwo()" />
<input name="input2" onblur="setTimeout(function(){testTwo();}, 100)" />
<button name="button1" onclick="testOne()">Button</button>
</body>
</html>
答案 0 :(得分:4)
你认为发生的事情并没有真正发生。
尝试使用console.log
(不阻止)而不是alert
(确实阻止),你会看到两个事件处理程序都运行。万岁,另一个鄙视alert
调试的理由。