синтаксис jQuery - когда использовать $ (доллар) по сравнению с jQuery [дубликат]

17
задан Rob W 28 December 2011 в 22:17
поделиться

9 ответов

Они оба делают одно и то же. Большинство библиотек используют $ как более короткий способ доступа к функциям внутри библиотек.

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);
28
ответ дан 30 November 2019 в 10:27
поделиться

если вы используете более одной библиотеки javascript, могут возникнуть конфликты, если вы используете только $. использование jQuery позволит избежать этого.

16
ответ дан 30 November 2019 в 10:27
поделиться

Это псевдоним для одного и того же. Если вы хотите использовать jQuery на одной странице с другими библиотеками, использующими символ $, вы можете использовать jQuery с опцией .noConflict(). Это позволит вам использовать $ для другой библиотеки и jQuery для библиотеки jQuery.

6
ответ дан 30 November 2019 в 10:27
поделиться

На самом деле никакой разницы, за исключением того факта, что jQuery ('SPANID') на самом деле должен быть jQuery ('# SPANID')

$ просто сокращение для jQuery

РЕДАКТИРОВАТЬ: Я понимаю, что реальная разница между $ и jQuery заключается в возможном конфликте пространства имен с другими библиотеками. В остальном они работают одинаково.

4
ответ дан 30 November 2019 в 10:27
поделиться

Использование явного "jquery" позволит избежать столкновения, если вы случайно ссылаетесь на другую библиотеку, использующую "$"

1
ответ дан 30 November 2019 в 10:27
поделиться

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

В условиях, когда вы не можете гарантировать, что $ не будет перезаписан чем-то другим, использование jQuery или jQuery.noConflict( ) безопаснее, чем $.

0
ответ дан 30 November 2019 в 10:27
поделиться

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

Хотя лично я думаю jq было бы хорошим сокращением (такое же количество нажатий клавиш, как $ , вероятно, немного реже).

0
ответ дан 30 November 2019 в 10:27
поделиться

Это не просто сокращение, это сделано для других библиотек JavaScript, которые могут использовать символ $, и во избежание путаницы или конфликта предпочтительнее использовать ключевое слово jquery.

0
ответ дан 30 November 2019 в 10:27
поделиться

Более подробная информация здесь: 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).

0
ответ дан 30 November 2019 в 10:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: