Первый - это ярлык для jQuery.ready
. Он вызывает функцию, которую вы ей даете, только когда DOM полностью готов к манипулированию (чего обычно не происходит при первом запуске этого скрипта; отсюда и обратный вызов) & mdash; например, когда вы можете безопасно искать элементы по их идентификатору или с помощью селектора CSS, добавлять новые элементы и т. д. и т. д.
Второй запускает функцию немедленно (потенциально до того, как DOM готов к работе) и передает объект jQuery
в качестве параметра с именем $
. Внутри функции вы можете с уверенностью предположить, что $
ссылается на объект jQuery, тогда как без этого вы не сможете, если вы используете jQuery.noConflict
для освобождения $
назад к тому, что раньше это (возможно, Prototype) до загрузки jQuery. Эта техника полезна, когда у вас много кода, написанного с $
, но потом вы обнаружите, что должны сосуществовать с Prototype или чем-то еще, что также хочет использовать $
. Вы просто помещаете весь свой код в анонимную функцию.
Вы можете сделать обе вещи вместе, если хотите:
jQuery(function($) {
// Code that uses `$` and expects the DOM to be ready to be
// manipulated goes here
});