我在第48行收到错误,因为“Uncaught TypeError:Object [object Object]没有方法'getElement''”

时间:2013-03-25 07:27:20

标签: javascript

我收到的错误是

  

未捕获的TypeError:对象[object Object]没有方法'getElement'

所以请在javascript文件中引用我的代码

addnavbtn: function(){

    if (!(Browser.ie && Browser.version < 9)) {
        var jlevel0 = this.menu.getElement('ul.level0');

        if(jlevel0){
            var jmega = this.menu;

            var jbutton = new Element ('div', {id:'js-megamenu-button', 'class': 'js-megamenu-button', html: 'Navigation', styles: { display: 'none'}}).inject (jmega, 'before');

            jbutton.addEvent('click', function(e){
                e.stop();

                if(jmega.getStyle('display') == 'block'){
                    jmega.removeClass('active').setStyle('display', 'none');
                    jbutton.removeClass('active');
                } else {
                    jmega.addClass('active').setStyle('display', 'block');
                    jbutton.addClass('active');
                }
            });  

2 个答案:

答案 0 :(得分:0)

this.menu应该在你的情况下'未定义'。在'this.menu'上发出提醒

答案 1 :(得分:0)

...所以在 之前 this.menu.getElement(...);,写下console.log(this.menu);,它会为您提供一个可以打开的项目,查看。你可以看到.getElement是否可用,如果没有,为什么......

你也可以确保你没有将addnavbutton作为回调,或者作为事件监听器,或作为函数的参数调用...... ...因为如果你做了这些中的任何一个事情(几乎完全相同),然后this将指向window,而不是您想要的对象。