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

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

Похожие вопросы