Синтаксис jQuery - когда использовать $(доллар) против jQuery
Какая разница между этими двумя?
$('#SPANID').html("Some Text");
jQuery('#SPANID').html("Some Text");
Это что-то прототип vs jQuery?
Ответы
Ответ 1
Они оба делают то же самое. Большинство библиотек используют $как более короткий способ доступа к функциям в библиотеках.
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);
Ответ 2
Если вы используете более одной библиотеки javascript, могут возникнуть конфликты, если вы просто используете $. используя jQuery, они избегают этого.
Ответ 3
Это псевдоним для одного и того же. Если вы хотите использовать jQuery на той же странице, что и другие библиотеки, которые используют символ $
, вы можете использовать jQuery с . NoConflict(). Это позволит вам использовать $
для другой библиотеки и jQuery
для библиотеки jQuery.
Ответ 4
На самом деле никакой разницы, кроме факта, что jQuery('SPANID')
должно быть jQuery('#SPANID')
$является просто сокращением для jQuery
EDIT: Я понимаю, что реальная разница между $и jQuery заключается в столкновении пространства имен с другими библиотеками. Помимо этого, они работают одинаково.
Ответ 5
Использование явного "jquery" позволит избежать столкновения, если вам случится также ссылаться на другую библиотеку, которая использовала "$"
Ответ 6
Разница заключается в следующем: $
часто используется другими библиотеками или конструкциями JavaScript, поэтому его можно перезаписать и может не делать того, что вы ожидаете. jQuery
всегда ссылается на библиотеку jQuery, поэтому он будет делать то, что вы ожидаете.
В средах, где вы не можете гарантировать, что $
не будет перезаписано чем-то другим, используя jQuery
или jQuery.noConflict( )
безопаснее, чем $
.
Ответ 7
Используйте jQuery, когда у вас есть другая библиотека, которая уже определила $
. Используйте $
как удобную стенографию, когда вы этого не делаете (или внутри областей функций, где вам не нужно беспокоиться об этом.:)
Хотя лично я думаю, что jq
сделает красивую стенографию (такое же количество нажатий клавиш, как $
, возможно, немного реже).
Ответ 8
Это не просто короткая рука, но она сделана для других библиотек JavaScript, которые могут использовать символ $, и чтобы избежать путаницы или конфликта, тогда использование ключевого слова jquery является предпочтительным.
Ответ 9
Подробнее здесь: http://api.jquery.com/ready/
$- псевдоним для jQuery, который (jQuery) является библиотекой Javascript.
Плагины - это использование библиотеки определенным образом, которые создают конкретное использование библиотеки и расширяют ее функциональность.
Некоторые примеры использования:
"Обычный" код jQuery:
$(function(){
// my jquery code here
});
ПРИМЕЧАНИЕ: это управление событиями, то есть оно выполняется в событии готовности DOM.
Код подключаемого модуля:
(function($){
//theplugin code here
})( jQuery );
Это позволяет использовать $inside без путаницы, потому что он говорит: "Назначьте jQuery для $, переданного в функции ($)
$(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;
Ничего особенного здесь, просто используя другой символ.
Просто так получается, что обычное использование $is $= jQuery; Другие библиотеки используют этот символ как общую сокращенную форму (псевдоним), таким образом, noconflict и использование полного имени (jQuery).