2010-08-20 3 views
57

Можно создать дубликат:
what is difference of $(function(){ }); and $(document).ready(function() { }) ;?

Каковы различия между $(document).ready(function(){}) против $(function(){}) и я должен напишите его в форме $ или новом jQuery(document).ready(function(){ })?

Если у меня есть загрузка google api ed google.setOnLoadCallback(function() { лучший способ? или это одно и то же?

Я также видел, как люди используют $(function($){})

Может кто-нибудь мне помочь, я потерял. Я жужжаю меня, когда не знаю код, который я пишу. Думаю, я должен прочитать библиотеку. Все ли определено как одно и то же?

+0

точный дубликат, http://stackoverflow.com/questions/2662778/what-is-difference-of-function-and-document-readyfunction – Starx

ответ

79

Два способа эквивалентны, я лично предпочитаю второй, $(function() {}); это всего лишь shortcut для документа, готового.

О конструкции new jQuery(document)..., вам действительно не нужно использовать оператора new, jQuery будет использовать его внутренне, если вы этого не сделаете.

Аргумент, что функция ready обработчик получает, является сам объект JQuery.

Это очень полезно, когда нужно запустить JQuery в режиме совместимости с другими библиотеками, например:

jQuery(function ($) { 
    // use $ here 
}); 

$ аргумент внутри обратного вызова будет ссылаться на объект JQuery, вне этой функции он может ссылаться на другой библиотеки, такой как PrototypeJS.

+2

Я думаю, что он имел в виду новое, как «новый путь» JQuery (document) ... –

+0

С jQuery 3.0 рекомендуется использовать только синтаксис '$ (function() {})'; другие синтаксисы все еще работают, но устарели. См. Https://api.jquery.com/ready/ – LazerBass

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

двух утверждений, на самом деле точно такой же. Таким образом, второй вызов - это просто ярлык для первого.

Обозначение $ снова является только ярлыком для jQuery. Если вы загрузили jQuery на свой сайт, вы можете использовать оба. Особенно, если вы не загружаете другие библиотеки JS, которые, возможно, также используют знак $. Это приводит нас к указанным вами

(function($){ 
}(jQuery)); 

звонок. Здесь делается попытка убедиться, что в выражении созданной функции знак $ ссылается на объект jQuery. Вы вызываете эту анонимную функцию (которая имеет параметр $ в качестве параметра) и передают объект jQuery.

2

Я рекомендую прочитать некоторые статьи, которые очень полезны для понимания чего-то в jQuery (и, конечно, в javascript), в этих статьях объясняется, как создать плагин jQuery, но, читая его, вы поймете некоторые основные и важные вещи, например закрытие ведьмы - это значение в этом (function ($) {} (jQuery)); заявление.

http://www.authenticsociety.com/blog/jQueryPluginTutorial_Beginner

Смежные вопросы