В IE не наводиться фокус
Такая проблема. Есть вот что:
addOtherInput = function()
{
var controls = _el( '_id_modelContainer' );
if (_el( 'gisReg[vehicle][model]' ))
if (_el( 'gisReg[vehicle][model]' ).value == 'other')
{
if (!_el( 'other_model' ))
{
var edit = document.createElement('input');
................
параметры edit
...............
controls.appendChild( edit );
if (edit.offsetHeight != 0) { setFocus(); } // здесь2
}
}
}
setFocus = function()
{
var edit = _el( 'other_model' );
if ( edit ) // здесь1
{
//alert('sdfghvfg');
edit.focus();
//return;
} else setTimeout('setFocus()',100);
}
В месте // здесь1 - нужно каким-то образом определить что edit - уже создался. При включении алерта - появляеться пауза и фокус срабатывает, без него в IE нет. Ежели задать в месте // здесь2 setTimeout('setFocus()', 400); достаточную паузу - также срабатывает. Так понимаю что нужно как-то проидентифицировать edit. Помогите... |
var edit = document.createElement('input');
здесь input уже создался controls.appendChild( edit ); а здесь он уже добавлен к dom (если controls добавлен) и нету необходимости ни в каких setTimeout и отдельная функция не нужна, писать вроде немного: edit.focus() даже проверил в ie 6, ie 7 |
addOtherInput - эта функция вызываеться при AJAX запросе.
И у меня работает только при задании достаточной паузы. Элемент может создаться:
var edit = document.createElement('input');
Он может добавиться: controls.appendChild( edit ); Но он может быть пока не обработан для вывода и, как мне кажеться, поэтому на него нельзя навести фокус. Я и спрашиваю какие есть ещё способы идентификации элемента? Может я ошибаюсь, но тогда объясните в чём причина. |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
window.onload = function() {
var input = document.createElement('input');
document.body.appendChild( input );
input.focus();
}
</script>
</head>
<body>
<input type="text" value="12">
</body>
</html>
работает? |
| Часовой пояс GMT +3, время: 09:08. |