Да, это происходит при манипулировании элементом, который еще не существует (несколько авторов также отметили это уникальным идентификатором). Я столкнулся с аналогичной проблемой. Мне также нужно передать аргумент функции, управляющей элементом, который скоро будет визуализирован.
Решение, проверенное здесь, мне не помогло. Наконец я нашел тот, который работал прямо из коробки. И это тоже очень красиво - замыкания.
Вместо:
$( '#header' ).focus();
or the tempting:
setTimeout( $( '#header' ).focus(), 500 );
Попробуйте это:
setTimeout( function() { $( '#header' ).focus() }, 500 );
В моем коде при проверке передачи аргумента это не сработало, таймаут был проигнорирован:
setTimeout( alert( 'Hello, '+name ), 1000 );
Это работает, тайм-аут:
setTimeout( function() { alert( 'Hello, '+name ) }, 1000 );
Это отстой, что w3schools не упоминает об этом.
Кредиты поступают на: makemineatriple.com .
Надеюсь, это поможет тому, кто придет сюда.
Martas