jQuery插件公共方法/功能

时间:2009-07-30 06:37:37

标签: javascript jquery plugins public-method

我正在尝试实现类似以下的内容,但不知道什么是错的:

$.a = function() {

// some logic here

function abc(id) {
   alert('test'+id);
}


}

$.a.abc('1');

我尝试使用return函数,但这似乎也无效。有人可以帮忙。

感谢您的时间。

2 个答案:

答案 0 :(得分:9)

由于$.a必须是一个函数,因此您必须将abc函数作为属性添加到$.a函数中:

$.a = function () {
    // some logic here...
};

$.a.abc = function (id) {
    alert('test' + id);
};

如果必须在abc函数中定义$.a,则可以执行以下操作。请注意,在使用此方法调用$.a.abc之前,$.a将无法使用!在调用函数之前,函数内部不会被计算。

$.a = function () {

    // Do some logic here...

    // Add abc as a property to the currently calling function ($.a)
    arguments.callee.abc = function (id) {
        alert('test' + id);
    };
};

$.a();
$.a.abc('1');

答案 1 :(得分:1)

$.a = (function(){
    var a = function() {
        //...
    };
    a.abc = function() {
        //...
    }
    return a;
})();