jQuery (селектор) или $ (селектор), какой? - PullRequest
2 голосов
/ 20 марта 2010

Какой способ лучше использовать jQuery()? Я слышал, что jQuery(element) не портит код, например, Wordpress. Но $ проще и быстрее писать.

Какой из них вы предпочитаете и почему?

Ответы [ 6 ]

10 голосов
/ 20 марта 2010

Мой порядок предпочтений $(), затем var $jq = jQuery.noConflict(); $jq(), затем, наконец, jQuery(). Вы также можете ограничить область действия функции $, выполнив:

;(function($){
    ...in here $ means jQuery...
})(jQuery);

То есть создайте анонимную функцию с параметром $, передайте jQuery в качестве параметра, а внутри функции область действия параметра переопределит любую глобально ограниченную функцию $. Последнее наиболее полезно при создании плагинов самостоятельно.

5 голосов
/ 20 марта 2010

Это зависит только от того, что вам нужно сделать, они оба идентичны.

Если вы используете другую библиотеку, такую ​​как Prototype (которая также использует $), вам потребуется jQuery, но в большинстве случаев, когда нет конфликта, просто используйте $ ()

2 голосов
/ 20 марта 2010

Сокращение $ также используется другими средами (например, прототипом), поэтому, если вы не используете это, не стесняйтесь использовать $ для сокращения. Насколько я знаю, это всего лишь псевдонимы друг друга.

1 голос
/ 20 марта 2010

Большая часть моего кода jQuery подразделяется на две категории: плагины и материалы для загрузки на странице.

Для плагинов вот самый простой способ:

(function($) {
    $.fn.myplugin = function() { ... };
})(jQuery);

Для загрузки на странице, которая составляет большую часть, просто сделайте это:

jQuery(function($) {
    $('a[href$="foo"]').click( ... );
});

Таким образом, не имеет значения, включены ли дополнительные библиотеки (например, Prototype), и вы все равно можете использовать $ вместо того, чтобы каждый раз вводить "jQuery".

1 голос
/ 20 марта 2010

Для ваших собственных расширений, которые используют $ только для вызова jQuery, вы также можете использовать стандартный трюк для переноса вашего кода следующим образом

(function($) {
   ... your other code using $(selector).moo here ....
})(jQuery);
0 голосов
/ 20 марта 2010

Вы можете использовать var jq=jQuery.noConflict(); для разрешения конфликтов имен.

Пример:

var $jq=jQuery.noConflict();
$jq("p").hide();
...