2010-03-20 2 views
2

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

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

ответ

11

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

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

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

2

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

+0

Argh, ninja'd: р –

5

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

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

+0

Спасибо за оба ответа, это один был немного быстрее, хотя :-D –

1

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

(function($) { 
    ... your other code using $(selector).moo here .... 
})(jQuery); 
1

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

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

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

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

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

Таким образом, это Безразлично» Неважно, если есть дополнительные библиотеки (например: Prototype), и вы все равно можете использовать $ вместо того, чтобы печатать «jQuery» каждый раз.

0

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

Ex:

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

Это не будет работать! Откуда появился '$ jq'? – Eric

+0

@ Eric-thanks, это была опечатка. Исправил мой ответ. – SoftwareGeek

Смежные вопросы