【发布时间】:2010-03-20 13:56:08
【问题描述】:
使用jQuery() 的更好方法是什么?我听说jQuery(element) 不会破坏代码,例如WordPress。但是$ 写起来更容易、更快捷。
你更喜欢哪一个,为什么?
【问题讨论】:
标签: jquery jquery-selectors css-selectors
使用jQuery() 的更好方法是什么?我听说jQuery(element) 不会破坏代码,例如WordPress。但是$ 写起来更容易、更快捷。
你更喜欢哪一个,为什么?
【问题讨论】:
标签: jquery jquery-selectors css-selectors
我的优先顺序是$(),然后是var $jq = jQuery.noConflict(); $jq(),最后是jQuery()。您还可以通过以下方式限制$ 函数的范围:
;(function($){
...in here $ means jQuery...
})(jQuery);
即创建一个参数为$ 的匿名函数,传入jQuery 作为参数,并且在函数内参数范围覆盖任何全局范围的$ 函数。后者在自己创建插件时最有用。
【讨论】:
这取决于你需要做什么,它们都是相同的。
如果您使用另一个库,例如 Prototype(也使用 $),则需要使用 jQuery,但在大多数情况下没有冲突,只需使用 $()
【讨论】:
$ 简写也被其他框架(如原型)使用,所以如果您不使用它,请随意使用 $ 作为简写。据我所知,这两者只是彼此的别名。
【讨论】:
对于您自己使用$ 仅调用jQuery 的扩展,您还可以使用像这样包装代码的标准技巧
(function($) {
... your other code using $(selector).moo here ....
})(jQuery);
【讨论】:
我的大部分 jQuery 代码分为两类:插件和页面加载内容。
对于插件,这是最简单的方法:
(function($) {
$.fn.myplugin = function() { ... };
})(jQuery);
对于页面加载内容,这是大部分内容,只需执行以下操作:
jQuery(function($) {
$('a[href$="foo"]').click( ... );
});
这样,是否包含额外的库(例如:Prototype)都没有关系,您仍然可以使用 $ 而不是每次都输入“jQuery”。
【讨论】:
您可以使用var jq=jQuery.noConflict(); 来处理名称冲突。
例如:
var $jq=jQuery.noConflict();
$jq("p").hide();
【讨论】: