一个不需要元素的jQuery插件方法

3

我正在编写一个jQuery插件,其中一个我想要编写的方法不需要传递选择器参数,也不需要传递元素。我希望可以通过像内置的$.ajax()方法一样调用$.myMethod()来使用它。到目前为止,我尝试了以下代码:

$.fn.myMethod(options) {
     console.log("I've been called");
}

当我尝试使用$('.a_selector').myMethod()时,它可以正常工作,但是当我尝试使用$.myMethod()时,它就无法正常工作了。

这是否可以使用jQuery插件实现,或者它只适用于内部函数。

该方法旨在对存储在jQuery.data中的一些数据执行操作。我知道jQuery.data与元素相关联,但在这种情况下,我已经将其硬编码到body元素中,以使最终用户更轻松地处理。

2个回答

2

$.fn 的成员函数应用于 jQuery 对象,而不是 $ 对象本身。如果你想创建这样一个方法,只需编写:

$.yourMethod = function() {
    // Do something.
};

现在你可以不使用 jQuery 对象来调用它:
$.yourMethod();

这显然是非常明显的,直接冲着我来了...谢谢! - wmarbut

0
声明这样一个函数的一种复杂方式可以是:
$.extend({myMethodA:function(){
                            //Do something
                            },
          myMethodB:function(){
                        //Do something else
                                }       
                 });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接