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

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

Войти через центр авторизации
Похожие вопросы
05 нояб. 2024, в 11:03
15000 руб./за проект
05 нояб. 2024, в 11:00
15000 руб./за проект
05 нояб. 2024, в 10:55
1500 руб./за проект