-2

我得到的错误是

未捕获的类型错误:对象 [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');
                }
            });  
4

2 回答 2

0

this.menu 在您的情况下应该是“未定义”。在“this.menu”上发出警报

于 2013-03-25T07:43:12.400 回答
0

...所以在前面 this.menu.getElement(...);的那行,写console.log(this.menu);,它会给你一个你可以打开的项目,然后检查。您可以查看是否.getElement可用,如果不可用,为什么...

您还可以确保您不是addnavbutton作为回调,或在事件侦听器中或作为函数的参数调用... ...因为如果您执行任何这些操作(都几乎相同) , 然后this将指向window, 而不是您的预期对象。

于 2013-03-25T07:44:31.693 回答