无法在javascript中读取对象属性

时间:2012-05-21 16:36:41

标签: javascript jquery

尝试通过聆听对象和隐藏来隐藏左/右导航文本。它的属性。

工作示例:http://jsfiddle.net/ylokesh/9EyEu/29/

但是,收到以下错误“Uncaught TypeError:无法调用方法'隐藏'未定义”

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();​

2 个答案:

答案 0 :(得分: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的情况下,this关键字未引用scroller对象。

答案 1 :(得分:2)

@Lokesh您的JavaScript错误是因为nextprev是字符串,而且他们没有hide方法。