2013-11-07 4 views
1

В чем разница в $?Что означает значение jQuery в этой функции?

Вопрос:

Что $ значит, в следующем примере?

JS:

jQuery(document).ready(function() { 
    console.log('loaded'); 
}); 

jQuery(document).ready(function($) { 
    console.log('loaded'); 
}); 

Может кто-нибудь объяснить мне, в чем разница между этими 2-мя функциями?

Заранее благодарен

+0

Это просто имя аргумента. –

+0

Этот конкретный ($) аргумент имеет некоторую функцию/значение в jQuery? Или это просто аргумент с именем «$». –

+0

Прочтите документацию. См. Раздел: [Слияние пространства имен jQuery] (http://api.jquery.com/ready/) – epascarello

ответ

2

$ обычно является имя JQuery конструктор. Иными словами, это имя функции, которую вы вызываете каждый раз, когда хотите создать объект jQuery. Например:

$('div') 

Обычно это глобальная переменная, что означает, что она доступна на всей странице Javascript. Существует еще одна переменная jQuery, которая обычно указывает на то же самое.

console.log($ === jQuery); // true 

Однако можно установить $ к чему-то еще. Возможно, вы хотите использовать $, чтобы означать что-то другое в вашем коде. Или, возможно, вы также используете Prototype, который также использует символ $, чтобы указать на функцию.

Именно поэтому существует метод jQuery.noConflict(): он останавливается $ со ссылкой на jQuery.

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

Когда вы делаете jQuery(document).ready(function(), вы назначаете обработчик событий. Функция будет запущена при запуске события. Мы можем переназначить $, чтобы обратиться к jQuery исключительно в рамках этой функции обратного вызова. Этому способствует jQuery: каждая функция $(document).ready callback вызывается с конструктором jQuery в качестве первого аргумента, поэтому вы можете использовать любое имя, которое вы выбираете внутри функции.

Например:

var $ = 'apples'; 

jQuery(document).ready(function() { 
    $('div'); // causes an error: "TypeError: string is not a function" 
}); 

jQuery(document).ready(function($) { 
    $('div'); // works fine 
}); 

Эта функциональность описана в API JQuery для метода ready, в разделе, озаглавленном "Aliasing в JQuery пространство имен".

2

Это просто имя аргумента.

documentation for ready См:

обработчик передается методу .ready() может принимать аргумент, который передается глобальный объект JQuery

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