我没有得到如何扩展jQuery ......我有以下代码:
jQuery.fn.extend({
whatever : function () {
alert('yeah');
}
});
哪个应该给我一个$.whatever
功能,不是吗?但是当我检查它,或者尝试运行它时:zilch。
看看这个小提琴: http://jsfiddle.net/66gpf/
我checked the docs对我来说似乎很好......所以,我做错了什么?
答案 0 :(得分:4)
jQuery.fn
是对jQuery.prototype
的引用。因此,当您执行jQuery.fn.extend
时,您将属性添加到prototype
,而不是到jQuery本身。 whatever
函数将存在于所有jQuery实例上。
jQuery.fn.extend({
whatever : function () {
alert('yeah');
}
});
$('#a_selector').whatever();
文档:http://api.jquery.com/jquery.fn.extend/
P.S。如果您希望函数以$.whatever
而不是仅存在于jQuery对象实例上,则将其添加到$
而不是$.fn
。
jQuery.extend(jQuery, {
whatever : function () {
alert('yeah');
}
});
$.whatever();
答案 1 :(得分:1)
你需要使用$('body').html( typeof $('body').whatever );
,因为它不会添加任何作为jQuery静态对象的属性
$('body').html(typeof $('body').whatever);
演示:Fiddle