我了解您在扩展$.fn
时会调用这样的方法。
($ == jQuery
)
//$("div").myMethod();
$.fn.extend({
myMethod: function(){...}
});
当你扩展jQuery对象时就像这样:
//$.myMethod2();
$.extend({
myMethod2: function(){...}
});
但我不太明白$()
在这里做了什么:
//这里有一些方法被调用。一些具有相同方法名称(启动)的是坏的。
//但也许这就是为什么需要空白的jQuery对象,因此方法名称不会发生冲突
$(function() {
$().functionName({
something: 'something'
}).myMethod();
$().func1({
x: 1
}).initiate();
$().func2({
y: 2
}).initiate();
});
是否与调用该方法的事实有关,包括函数名称?
提前致谢并希望这是有道理的。
答案 0 :(得分:3)
$()
创建一个空的jQuery对象(wrappet set)。我不知道为什么有人会这样做。基本上,你在一组空元素上调用functionName
和myMethod
=什么都不应该发生。
jQuery().css({
'foo': 'bar'
}).show();
答案 1 :(得分:1)
在jQuery 1.4之前调用jQuery()
与jQuery(document)
相同。从那时起,它被改为返回一个空集。因此,自jQuery 1.4起,jQuery()
相当于jQuery([])
。即便如此,后者是并且是推荐的方式来获得空集以确保不要混淆任何人。
无论如何,我的猜测是你要问的代码是旧的,并且使用了一种不赞成使用的方式来访问document
节点,更不用说这样做是不好的做法。然后。 $()
可能应为$
或$(document)
。
但是,这并不是说空的jQuery集是错误的或无用的。 Adam Kiss写了一篇关于空集有用性的post on his blog。
最后,还有其他一些扩展jQuery的方法:
(function($){
$.myMethod = function() {
};
$.fn.myMethod = function() {
};
})(jQuery);