jQuery函数没有返回

时间:2009-09-21 11:16:12

标签: javascript jquery

(function($){

    $.a.b  = {

        title: "ABC",

        init: function (id) {
                 /* do something here */
                  return id+'a';

              }




    };

})(jQuery);

当我尝试拨打$ .a.b.init('t');它不起作用,我的意思是它没有按预期返回。有什么建议吗?

问题不在于$ .a.b.init('t')无效。问题是它返回整个函数的代码而不是返回一个字符串。

感谢您的时间。

2 个答案:

答案 0 :(得分:7)

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

甚至更好:

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

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

答案 1 :(得分:4)

由于尚未定义 $.a ,因此您无法设置 b 属性。首先,您需要创建 $.a 。或者,使用命名空间助手:

$.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