Задать вопрос
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Почему не работает $(document).on("ready" ...?

когда показывается alert, страница все еще грузится
8141ab8d5eaf493eb13818c8fdc87a83.png
$(document).on("ready", function() {
	alert("hello");
});

<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	
	<script src="js/jquery-2.1.4.min.js" type="text/javascript" defer></script>
	<script src="test.js" type="text/javascript" defer></script>
</head>

<body>
	<h3>Hello world!</h3>
</body>
</html>
  • Вопрос задан
  • 9171 просмотр
Подписаться 2 Оценить 1 комментарий
Решения вопроса 2
fr_end
@fr_end
Frontend разработчик
Ready отрабатывает в тот момент, когда загружен DOM. Если хотите, чтобы событие отрабатывало, когда загрузится страница полностью, используйте $(window).load(function() {});
Ответ написан
Комментировать
viwoam
@viwoam
I solve problems!
1. Alert блокирует главный поток и до его завершения ничего не может происходить.
2. Страница (DOM) уже загружена но поскольку алерт происходит атомарно (и как уже выше сказано блокирует главный поток исполнения) браузер "не уверен" в том что все снаружные скрипты / стили загружены так как $(document).ready не гарантирует "полной" загрузки страницы, там могут присутствовать асинхронные задачи.
P.S это ответ на ваш вопрос (Почему не работает) а не решение как исправить.
Для решения можете посмотреть куски кодов от других пользователей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
21 янв. 2025, в 14:21
30000 руб./за проект
21 янв. 2025, в 14:10
2500 руб./за проект