扩展jQuery是行不通的......?

时间:2014-03-14 15:29:34

标签: javascript jquery

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

jQuery.fn.extend({

    whatever : function () {
        alert('yeah');
    }

});

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

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

checked the docs对我来说似乎很好......所以,我做错了什么?

2 个答案:

答案 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