【问题标题】:jQuery plugin public method/functionjQuery插件公共方法/功能
【发布时间】:2009-07-30 06:37:36
【问题描述】:

我正在尝试实现以下目标,但不知道出了什么问题:

$.a = function() {

// some logic here

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


}

$.a.abc('1');

我尝试使用返回函数,但这似乎也不起作用。有人可以帮忙吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: javascript jquery plugins public-method


    【解决方案1】:

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

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

    如果必须在 $.a 函数中定义 abc,您可以执行以下操作。请注意,$.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');
    

    【讨论】:

    【解决方案2】:
    $.a = (function(){
        var a = function() {
            //...
        };
        a.abc = function() {
            //...
        }
        return a;
    })();
    

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 2013-02-26
      • 2013-08-08
      • 2021-02-10
      • 2012-08-17
      • 2011-02-16
      • 2011-11-27
      • 2013-02-19
      • 1970-01-01
      相关资源
      最近更新 更多