Вызывается ли $(document).ready() после загрузки всех файлов сценариев в теле?

Вызывается ли $(document).ready() после загрузки js-файлов сценария в тело?

Если я помещу $(document).ready() в голову в элементе script, который принимает функцию обратного вызова, использующую функции, объявленные в файле, который его элемент script загружает в тело следующим образом:

<!DOCTYPE HTML>
<html>
<script src="jquery.js" type="text/javascript"></script>
<script>
$(function(){
hello();
})
</script>
<head>
</head>
<body>

<script src="http://somewhere/helloFuncDeclaration.js" type="text/javascript"></script>

</body>
</html>

Это правильный способ сделать это и гарантировать, что helloFuncDeclaration.js будет загружен перед вызовом функции hello()?

3 ответа

Решение

Чтобы быть уверенным, используйте обработчик загрузки окна:

$(window).on('load', hello);

Или используйте это так:

<script onload="hello()" src="http://somewhere/helloFuncDeclaration.js" type="text/javascript"></script>

Чтобы быть уверенным, вы можете использовать window.load

$(window).load(function(){
   hello();
})

Событие load отправляется элементу, когда он и все вложенные элементы полностью загружены. Это событие может быть отправлено любому элементу, связанному с URL: изображениям, сценариям, фреймам, фреймам и объекту окна.

$(document).ready() работает после того, как все активы были загружены, так что - да

Другие вопросы по тегам