Синтаксис 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).