2

我写了一个 jquery 插件。我已经定义了这样的方法:

(function($) {

    var methods = {
        init: function() {
            var initfunctions= {
                initbuttons: function() {
                    alert("bbb");
                }
                initnavbar: function() {
                    alert("ccc");
                }
            }
            subobject.initbuttons();
            subobject.initnavbar();
        },
        afterload: function() {
            ///some code 
            this.a.initfunctions.initbuttons(); //can't access b() from c function
        }
    };

    $.fn.dudaGallery = function() {


        return this.each(function() {
            methods.init();
            //methods.afterload();
        });

    };
})(jQuery);

$('#element').dudaGallery();   
​

我需要从 c() 访问 b() 函数,但我无法做到。 是一个jsfidde。

谢谢。

4

2 回答 2

1

看起来你在这里没有正确访问它..

subobject在c中没有范围,它仅限于a

this.a.subobject.b(); // 这里a是一个函数

试试这个

 c: function() {
            ///some code 
            this.a();
        }
于 2012-10-05T21:52:28.163 回答
1

不太确定您要在那里实现什么,但您的问题是范围subobject仅限于a()功能。在此处阅读有关私人成员范围的更多信息http://www.crockford.com/javascript/private.html

于 2012-10-05T21:43:37.650 回答