扩展jQuery是行不通的……?

我没有得到如何扩展jQuery …我有以下代码:

jQuery.fn.extend({ whatever : function () { alert('yeah'); } }); 

哪个应该给我一个$.whatever函数,不是吗? 但当我检查它,或尝试运行它:zilch。

看看这个小提琴: http : //jsfiddle.net/66gpf/

我检查了文档 ,这对我来说似乎很好……所以,我做错了什么?

jQuery.fn是对jQuery.prototype的引用。 所以当你执行jQuery.fn.extend ,你会在prototype添加一个属性, 而不是 jQuery本身。 所有jQuery实例都将存在whatever函数。

 jQuery.fn.extend({ whatever : function () { alert('yeah'); } }); $('#a_selector').whatever(); 

文档: http : //api.jquery.com/jquery.fn.extend/

PS如果您希望函数以$.whatever而不是仅在jQuery对象实例上存在,则将其添加到$而不是$.fn

 jQuery.extend(jQuery, { whatever : function () { alert('yeah'); } }); $.whatever(); 

你需要使用$('body').html( typeof $('body').whatever ); 因为它不会添加任何作为jQuery静态对象的属性

 $('body').html(typeof $('body').whatever); 

演示: 小提琴