Разница между $ (обратный вызов) и $ (документ) .ready (функция)? - PullRequest
4 голосов
/ 15 августа 2011

На сайте jQuery описание для $(callback) состояло в том, что он ведет себя так же, как и $(document).ready(function), но затем примеры показали некоторые различия между двумя синтаксисами. Поэтому мне было интересно, кто-нибудь знает точно, в чем различия между ними?

Ответы [ 4 ]

7 голосов
/ 15 августа 2011

Нет различий, и документы не показывают никакой разницы:

Все три следующих синтаксиса эквивалентны:

  • $ (документ) .ready (обработчик)
  • $ (). Ready (обработчик) (это не рекомендуется)
  • $ (хендлер)

Прямо из: http://api.jquery.com/ready/

Я думаю, что вы озадачены примером, показывающим jQuery(function($){ ... }); Это просто способ вызова $(handler), без конфликта $.

IE.

// Here `$` is used by another library
jQuery(function($){
    // Here `$` refers to jQuery
});
4 голосов
/ 15 августа 2011
$(document).ready(function() {
  // Handler for .ready() called.
});

Что эквивалентно звонку:

$(function() {
 // Handler for .ready() called.
});

http://api.jquery.com/ready/

1 голос
/ 15 августа 2011

Нет никакой разницы, за исключением того, что ярлык немного медленнее, так как он должен определить тип аргумента и затем вызвать $(document).ready.(На самом деле исходный код jQuery очень чистый, так что вы можете легко проверить сами - $() вызывает $.fn.init, который проходит через пару тестов , затем вызывает readyв строке 177)

0 голосов
/ 15 августа 2011

Разницы нет. Если вы вызываете $() только с одним параметром - функцией: $(some_function) - это означает, что он вызовет $(document).ready(some_function)

Итак, для простоты вы можете использовать:

$(function(){
// your code
});

P.S. Не используйте эту структуру, если вы используете разные библиотеки (которые могут конфликтовать с переменной $). В этих случаях используйте:

jQuery(function(){
// your code
});
...