Учитывая следующий JavaScript:Javascript OnFocus и ONBLUR закрытия не работает, как ожидалось
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function runMe(){
for(var x=0; x<5; x++){
var d=document.createElement("DIV");
d.innerHTML="test " + x;
d.tabIndex=x;
d.onfocus=function(y){
return function(){
alert("focus: " + y);
}
}(x);
d.onblur=function(y){
return function(){
alert("blur: " + y);
}
}(x);
document.body.appendChild(d);
}
}
</script>
</head>
<body onload="runMe()">
</body>
</html>
При запуске, пожары ONBLUR событий и предупреждает индекс вновь сосредоточенного DIV, а не предупреждая индекс ранее -фокусированный div.
Как ни странно, когда я отмечаю событие onfocus, onblur работает так, как ожидалось, предупреждая ранее сконцентрированный div.
Я не могу понять, почему событие onblur запускает тот же индекс, что и событие onfocus.
Я считаю, что мои замыкания верны, но я не на это 100%.
У кого-нибудь есть представление о моей ошибке?
Попробуйте использовать предупреждение, они появляются слишком много раз! –
@ abc123, Yup, вы абсолютно правы - всплывающее диалоговое окно фактически вызывало неожиданное размытие. Я проверю вас как ответ через 4 минуты ;-) СПАСИБО! – alfadog67