-2

次のようにエラーが発生しています

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド '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

...so の this.menu.getElement(...);の行に書き込むconsole.log(this.menu);と、開いてチェックアウトできるアイテムが表示されます。が利用可能かどうか、利用できない場合.getElementはその理由を確認できます...

addnavbuttonまた、コールバック、イベント リスナー、または関数のパラメーターとして呼び出していないことを確認することもできます... ...これらのいずれかを行う場合 (すべてほとんど同じ) 、その後、意図したオブジェクトではなく、thisを指します。window

于 2013-03-25T07:44:31.693 に答える
0

あなたの場合、this.menuは「未定義」になるはずです。「this.menu」でアラートを出す

于 2013-03-25T07:43:12.400 に答える