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

@Lokesh您的JavaScript错误是因为nextandprev是字符串并且它们没有该hide方法。

于 2012-05-21T16:49:26.140 回答
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 回答