Если вы поместите курсор на первый вход, а затем нажмите кнопку, вы получите одно сообщение.
Если вы поместите курсор на второй (с 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>