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に限定されているa()ことです。プライベート メンバーのスコープについて詳しくは、こちらをご覧ください http://www.crockford.com/javascript/private.html

于 2012-10-05T21:43:37.650 に答える
1

ここで正しくアクセスしていないようです..

subobjectcにはスコープがありません, それはaに限定されています

this.a.subobject.b(); // ここでaは関数です

代わりにこれを試してください

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