最初の入力にカーソルを置いてボタンをクリックすると、1 つのメッセージが表示されます。
カーソルを 2 番目のメッセージ ( を使用setTimeout
) に置くと、両方のメッセージが表示されます。
最初のシナリオで「ボタンがクリックされました」というメッセージが表示されないのはなぜですか?
逆に、setTimeout
2 番目のアラートが両方のアラートを表示する原因は何ですか?
<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>