1

オブジェクトとそのプロパティを聞いて、左右のナビゲーションテキストを非表示にしようとしています。

実例: http: //jsfiddle.net/ylokesh/9EyEu/29/

しかし、次のエラーが発生します "Uncaught TypeError:Cannot call method'hide' of undefined"

if(!scroller) { var scroller = {}; }

            scroller = {
                next : "#leftControl",
                prev : "#rightControl",
                videos : {
                    hideButtons : function() {
                        var obj = this;
                        obj.next.hide();
                        obj.prev.hide();
                    },
                    init : function() {
                        var obj =  this;
                        obj.hideButtons();
                    }
                },
                init : function() {
                    var obj =  this;
                    obj.videos.init(); 
                }                            
            }

scroller.init();​
4

2 に答える 2

2

この問題に対する修正されたjsは次のとおりです。

var scroller = {
    next : "#leftControl",
    prev : "#rightControl",
    videos : {
        hideButtons : function() {
            $(scroller.next).hide();
            $(scroller.prev).hide();
        },
        init : function() {
            this.hideButtons();
        }
    },
    init : function() {
        scroller.videos.init(); 
    }                            
};

scroller.init();​

scrollerご覧のとおり、私は。の代わりにオブジェクトを参照していますthis。キーワードを設定var obj = thisしている場合は、オブジェクトを参照していませんでした。thisscroller

于 2012-05-21T16:43:35.883 に答える
2

@LokeshのJavaScriptエラーは、nextとが文字列であり、メソッドprevがないためです。hide

于 2012-05-21T16:49:26.140 に答える