Удалить вызов функции и убрать кавычки. Если вы не ставите кавычки, setTimeout
получает прямую ссылку на функцию, которую он может вызвать позже. Однако, если внутри строки, такой как "checkForAllImagesLoaded"
или "checkForAllImagesLoaded()"
, он выполнит переданный код, когда истечет время ожидания.
В это время будет выполняться поиск checkForAllImagesLoaded
в глобальном объекте (окне), но он там не определен, причина в том, что вы получаете ошибку undefined
.
Ваш код обернут в самозвонящую анонимную функцию, и вне ее checkForAllImagesLoaded
не существует. Поэтому передайте прямую ссылку на функцию в вызове setTimeout вместо строки.
setTimeout(checkForAllImagesLoaded, 20);
setTimeout
может вызываться либо с функцией (и необязательными аргументами), либо со строкой, содержащей код JavaScript:
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
var timeoutID = window.setTimeout(code, delay);