В настоящее время я работаю через Learning jQuery Karl Swedberg, где все образцы кода jQuery в книге содержатся в $ (document).ready().
Хотя я понимаю, почему код должен содержаться в $ (document).ready(), а именно, чтобы они запускались только при загрузке документа HTML, книга не объясняет, почему какой-либо код должен быть помещен внутри функции,
Например
$(document).ready(function(){
alert("The page has loaded.");
alert("2nd alert.");
});
В приведенном выше примере, почему предупреждение должно содержаться в функции() для работы, и не может быть примером, подобным приведенному ниже, не будет работать.
$(document).ready(
alert("The page has loaded.");
alert("2nd alert.");
);
Буду признателен, если кто-нибудь сможет просветить меня.
$ (document).ready принимает обратный вызов. Обратный вызов - это функция javascript. Функции Javascript могут передаваться как переменные. В приведенном выше примере вы используете встроенную анонимную функцию, то есть функцию без имени.
Вы можете переписать свой пример следующим образом:
function doStuff() {
alert("The page has loaded.");
alert("2nd alert.");
}
$(document).ready(doStuff);
Вам нужно использовать функцию, потому что вы не можете передавать инструкции в качестве параметров функции, но вы можете передать функцию.
Обратите внимание, что если вы не хотите вводить столько же, это сокращенная нотация, которая функционально эквивалентна:
$(function() {
alert("The page has loaded.");
alert("2nd alert.");
});
или без встроенной функции:
function doStuff() {
alert("The page has loaded.");
alert("2nd alert.");
}
$(doStuff);
Читает документы, он задает функцию, выполняемую при полной загрузке DOM.
.ready (обработчик)
Где, обработчик
Тип: Функция()
Функция, выполняемая после DOM, готова.
$(document).ready()
ожидает функцию. Второй пример - синтаксическая ошибка, так как alert("The page has loaded."); alert("2nd alert.");
alert("The page has loaded."); alert("2nd alert.");
не является допустимым списком параметров.
Причина, по которой вам обычно приходится использовать $(document).ready()
в jQuery, заключается в том, что вы обычно взаимодействуете с узлами DOM (которые на самом деле недоступны в DOM, но если ваш скрипт находится в верхней части страницы), Альтернатива заключается в том, чтобы поместить ваш скрипт в нижнюю часть страницы, после чего доступны все необходимые узлы DOM, и нет необходимости в обертке $(document).ready()
.
.ready
принимает функцию (т.е. так было написано )