代码之家  ›  专栏  ›  技术社区  ›  Alec Smart

jquery函数未返回

  •  2
  • Alec Smart  · 技术社区  · 15 年前

    (函数($){

        $.a.b  = {
    
            title: "ABC",
    
            init: function (id) {
                     /* do something here */
                      return id+'a';
    
                  }
    
    
    
    
        };
    
    })(jQuery);
    

    当我试图调用$.A.B.init(“t”)时,它不起作用,我的意思是它不会按预期返回。有什么建议吗?

    问题不在于$.A.B.Init(‘T’)不起作用。问题是它返回整个函数的代码,而不是返回字符串。

    谢谢你抽出时间。

    2 回复  |  直到 15 年前
        1
  •  7
  •   Kobi    15 年前

    尝试

    $.a = [];
    $.a.b  = { ... }
    

    甚至更好:

    $.a = {b: {
         title: "",
         init: ...
    }};
    

    使用时 $.a.b a未定义,因此无法添加到其中。

        2
  •  4
  •   James    15 年前

    自从 $.a 尚未定义您无法设置 b 财产。首先,您需要创建 一美元 . 或者,使用名称间距助手:

    $.namespace = function(ns) {
        var cur = $, split = ns.split('.');
        while (split[0]) {
            cur = cur[split.shift()] = {};
        }
        return cur;
    };
    
    $.namespace('a').b = { ... };
    

    它还可以用于更深的命名空间:

    $.namespace('a.b.c.d.e.f').g = 123;
    $.a.b.c.d.e.f.g; // => 123