почему через settimeout(фн 0) иногда полезно?

<select><select><option><select>selectedindex<option>index

я недавно столкнуться довольно неприятный баг, в котором код был загружается динамически через javascript. это динамически загружаемых был предварительно выбранное значение. в ie6, у нас уже был код, чтобы исправить некоторые , потому что иногда значение будет синхронизирован с атрибута выбранного 'ы, как показано ниже:

field.selectedindex = element.index;
selectedindexalert()

однако, этот код не работает. хотя поля были установлены неправильно, неправильный индекс в конечном итоге выбран. однако, если я застрял оператор в в нужное время, правильный вариант будет выбран. думая, что это может быть какое-то явление, я пытался что-то случайное, что я видел в код до:

var wrapfn = (function() {    var myfield = field;    var myelement = element;    return function() {        myfield.selectedindex = myelement.index;    }})();settimeout(wrapfn, 0);

и это сработало!

settimeout()

у меня есть решение для моей проблемы, но мне как-то неспокойно, что я не знаю точно, почему это решает мою проблему. у кого-нибудь есть официальное разъяснение? что проблема с браузером я избегаю путем вызова функции "позже" используете ?