jQuery(选择器)或$(选择器),哪一个?

时间:2010-03-20 13:56:08

标签: jquery jquery-selectors css-selectors

使用jQuery()哪种方式更好?我听说jQuery(element)不会破坏代码,例如WordPress的。但$编写起来更容易,更快。

您更喜欢哪一个?为什么?

6 个答案:

答案 0 :(得分:10)

我的偏好顺序是$(),然后是var $jq = jQuery.noConflict(); $jq(),最后是jQuery()。您还可以通过执行以下操作来限制$功能的范围:

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

这是创建一个参数为$的匿名函数,传入jQuery作为参数,并且在函数内参数范围覆盖任何全局范围的$函数。后者在自己创建插件时最有用。

答案 1 :(得分:5)

这取决于你需要做什么,它们都是相同的。

如果您正在使用另一个像Prototype(也使用$)的库,那么您需要使用jQuery,但在大多数没有冲突的情况下,只需使用$()

答案 2 :(得分:2)

$ quickhand也被其他框架(如原型)使用,所以如果你不使用它,可以随意使用$作为速记。据我所知,这两个只是彼此的别名。

答案 3 :(得分:1)

对于仅使用$来调用jQuery的自己的扩展程序,您还可以使用像这样包装代码的标准技巧

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

答案 4 :(得分:1)

我的大多数jQuery代码分为两类:插件和页面加载的东西。

对于插件,这是最简单的方法:

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

对于页面加载的东西,这是大部分内容,只需这样做:

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

这样,如果包含额外的库(例如:Prototype)就没关系了,你仍然可以使用$而不是每次都输入“jQuery”。

答案 5 :(得分:0)

您可以使用var jq=jQuery.noConflict();来处理名称冲突。

前:

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