В первом примере определенно используется прецедент. Если у вас есть другие JS-библиотеки/сценарии, загруженные на ту же страницу, нет никакой гарантии, что они не переписывают переменную $
. (Это очень часто, когда у вас есть Prototype и jQuery на той же странице).
Так что если Prototype использует $
, вам нужно будет использовать jQuery
в любое время, когда вы хотели работать с jQuery. Это может быть довольно некрасиво:
jQuery(function(){
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
})
Помните, что мы не можем использовать $
, потому что это способ от прототипа в глобальном масштабе.
Но если вы завернул внутри этого ..
(function($){
$(function(){
// your code here
});
})(jQuery);
$
будет на самом деле ссылки на библиотеку JQuery внутри в то же время со ссылкой на Prototype снаружи!Это может помочь привести в порядок код:
(function($){
$(function{}(
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
));
})(jQuery);
Это общая картина с расширениями JQuery, чтобы гарантировать, что они всегда добавляются в объект JQuery, но могут быть написаны с использованием $
, чтобы сохранить код аккуратно.
FYI - они не эквивалентны. – Hamish