Что значит $ (function () {});делать? - PullRequest
167 голосов
/ 04 октября 2011

Иногда я создаю функцию и вызываю ее позже.

Пример:

function example { alert('example'); }
example(); // <-- Then call it later

Почему-то некоторые функции не могут быть вызваны.Я должен вызвать эти функции внутри:

$(function() { });

Что означают $(function() {}); и (function() { });, и в чем их различие / цель?

Ответы [ 5 ]

255 голосов
/ 04 октября 2011
$(function() { ... });

- это просто сокращение jQuery для

$(document).ready(function() { ... });

. Он предназначен для выполнения (среди прочего) обеспечения того, что ваша функция вызывается, как только все элементы DOM страницы готовы кбыть использованы.

Однако я не думаю, что это проблема, с которой вы столкнулись - можете ли вы уточнить, что вы подразумеваете под «Каким-то образом некоторые функции не могут быть вызваны, и я должен вызывать эти функции внутри»?Может быть, выложите какой-нибудь код, чтобы показать, что не работает должным образом?

Редактировать: Возможно, вы перечитываете ваш вопрос, возможно, ваша функция работает до того, как страница закончила загружаться, и поэтому не будет работать должным образом;если поместить его в $ (функция), это действительно исправит!

11 голосов
/ 04 октября 2011

Ниже приведен вызов функции jQuery:

$(...);

Что такое «функция jQuery».$ - это функция, а $(...) - вы вызываете эту функцию.

Первый указанный вами параметр имеет следующий вид:

function() {}

Параметр - это функция, которую выи функция $ вызовет предоставленный метод, когда DOM завершит загрузку.

7 голосов
/ 04 октября 2011

Это просто сокращение для $(document).ready(), например: $(document).ready(function() { YOUR_CODE_HERE });. Иногда вам нужно использовать его, потому что ваша функция работает до того, как DOM завершит загрузку.

Здесь все объясняется: http://docs.jquery.com/Tutorials:Introducing_$(document).ready()

2 голосов
/ 04 октября 2011

Думаю, вы путаете Javascript с методами jQuery.Ванильный или простой Javascript - это что-то вроде:

function example() {
}

Функция такого типа может вызываться в любое время и в любом месте.

jQuery (библиотека, построенная на Javascript) имеет встроенные функции, которыекак правило, требуется, чтобы DOM был полностью обработан перед вызовом.Синтаксис для этого:

$(document).ready(function() {
});

Таким образом, функция jQuery, с префиксом $ или словом jQuery, обычно вызывается из этого метода.

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

Псевдокод для этого блока:

Когда объектная модель документа $(document) готова .ready(), вызовите следующую функцию function() { }.В этой функции проверьте все <li> на странице $('li') и, используя метод jQuery .CSS (), установите для свойства CSS "color" значение "red" .css('color', 'red');

2 голосов
/ 04 октября 2011

Это ярлык для $(document).ready(), который выполняется, когда браузер завершил загрузку страницы (здесь это означает «когда DOM доступен»). См. http://www.learningjquery.com/2006/09/introducing-document-ready. Если вы пытаетесь вызвать example() до того, как браузер завершит загрузку страницы, он может не работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...