Они оба делают одно и то же. Большинство библиотек используют $ как более короткий способ доступа к функциям внутри библиотек.
jQuery имеет много способов доступа к своей библиотеке:
window.jQuery('#SPANID').html("Some Text");
window.$('#SPANID').html("Some Text");
jQuery('#SPANID').html("Some Text");
$('#SPANID').html("Some Text");
jQuery или window.jQuery можно использовать вместо $, если вы использовали более одной библиотеки.
В JQuery есть функция jQuery.noConflict (); , которая отказывается от контроля jQuery над переменной $, из-за чего $ не работает с jQuery.
Это было бы хорошо для использования нескольких библиотек, использующих $.
Итак, когда вы используете jQuery, вы должны использовать jQuery ('# message'). AddClassName ('read');
и $ ('# message'). AddClassName ('read' );
при использовании Prototype.
(Этот следующий бит немного не по теме, но поможет, если вы хотите использовать $ с несколькими библиотеками)
Хотя есть способ использовать $ в разных библиотеках одновременно, используя анонимные функции. примерно так:
(function($){
})(jQuery);
(function($){
})(Prototype);
Каждая из функций передает объект библиотеки, например jQuery и Prototype, в качестве переменной $, позволяющей использовать ее со многими библиотеками. Если вы укажете свой код для каждой библиотеки в каждой из них, он будет работать.
Например:
(function($){
$(document).ready(function(){
$('#message').addClass('read');
});
})(jQuery);
(function($){
document.observe("dom:loaded", function() {
$('message').addClassName('read');
//Or
$$('#message').addClassName('read');
});
})(Prototype);
если вы используете более одной библиотеки javascript, могут возникнуть конфликты, если вы используете только $. использование jQuery позволит избежать этого.
Это псевдоним для одного и того же. Если вы хотите использовать jQuery на одной странице с другими библиотеками, использующими символ $
, вы можете использовать jQuery с опцией .noConflict(). Это позволит вам использовать $
для другой библиотеки и jQuery
для библиотеки jQuery.
На самом деле никакой разницы, за исключением того факта, что jQuery ('SPANID')
на самом деле должен быть jQuery ('# SPANID')
$ просто сокращение для jQuery
РЕДАКТИРОВАТЬ: Я понимаю, что реальная разница между $ и jQuery заключается в возможном конфликте пространства имен с другими библиотеками. В остальном они работают одинаково.
Использование явного "jquery" позволит избежать столкновения, если вы случайно ссылаетесь на другую библиотеку, использующую "$"
Разница заключается в следующем: $
часто используется другими библиотеками или конструкциями JavaScript, поэтому он может быть перезаписан и может делать не то, что вы ожидаете. jQuery
всегда ссылается на библиотеку jQuery, поэтому будет делать то, что вы ожидаете.
В условиях, когда вы не можете гарантировать, что $
не будет перезаписан чем-то другим, использование jQuery
или jQuery.noConflict( )
безопаснее, чем $
.
Используйте jQuery, если у вас есть другая библиотека, которая уже определена $
. Используйте $
в качестве удобного сокращения, когда вы этого не делаете (или внутри области действия функций, где вам не нужно об этом беспокоиться. :)
Хотя лично я думаю jq
было бы хорошим сокращением (такое же количество нажатий клавиш, как $
, вероятно, немного реже).
Это не просто сокращение, это сделано для других библиотек JavaScript, которые могут использовать символ $, и во избежание путаницы или конфликта предпочтительнее использовать ключевое слово jquery.
Более подробная информация здесь: http://api.jquery.com/ready/
$ - это псевдоним для jQuery, который (jQuery) является библиотекой Javascript. Плагины - это использование библиотеки определенным образом, которые создают специфическое использование библиотеки и расширяют ее функциональность.
Некоторые примеры использования:
"Обычный" код jQuery:
$(function(){
// my jquery code here
});
ПРИМЕЧАНИЕ: это управление EVENT, то есть выполняется по событию готовности DOM.
Подключаемый код:
(function($){
//theplugin code here
})( jQuery );
Это позволяет использовать $ внутри без путаницы, потому что здесь говорится "назначить jQuery на $, переданный в function($)
$(function(){
//stuff here such as jQuery code
});
как в
$(function(){
$("#mybutton").click(function() {
alert("hi");)
)};
});
Это то же самое, что:
(function($) {
$(document).ready(function() {
$("#mybutton").click(function() {
alert("hi");
)};
})
})(jQuery)
но, возможно, не так хорошо, как (без привязки (jQuery) в конце), которая появляется только в том случае, если вы используете другие библиотеки, которые используют $.
$ - это просто символ, поэтому вы можете иметь переменные, например:
myvariable = 0; $myvariable = 0; my$variable = 0;
Здесь нет ничего особенного, просто используется другой символ.
Просто так получилось, что обычное использование $ - это $ = jQuery; другие библиотеки тоже используют этот символ как общее сокращение (что-то вроде псевдонима), поэтому возникает нонконфликт и используется полное имя (jQuery).