0

私のサイトでこのエラーが発生し続けますhttp://www.revolvercreative.com.au/gallery.html# Uncaught TypeError: Cannot read property 'left' of null これが何を意味するのか理解できません。

    subArrowXPos = curMenu.parent().position();
    subArrowDestWidth = curMenu.parent().width();
    destArrowX = subArrowDestWidth / 2 - parseInt(subArrowUp.css('width'), 10) / 2;

        subArrow.jacked({
            left: subArrowXPos.left,
            width: subArrowDestWidth,
            opacity: 1
        }, {
            duration: 500
        });

        subArrowUp.jacked({
            left: destArrowX
        }, {
            duration: 500
        });
}

function checkMenuWidth() {

    var logoWidth = $('.logo').width() + 40;
    var availableWidth = contWidth - logoWidth;
    var menuWidth = $('.ddsmoothmenu').width();
    var mainMenu = $('nav #smoothmenu');
    var dropDown = $('nav form');
    var arrow = $('#submenuArrow');



    if (availableWidth >= menuWidth) {
        mainMenu.css({
            'visibility': 'visible'
        });
        dropDown.css({
            'display': 'none'
        });
        arrow.css({
            'display': 'inline'
        });
    } else {
        arrow.css({
            'display': 'none'
        });
        mainMenu.css({
            'visibility': 'hidden'
        });
        dropDown.css({
            'display': 'inline-block'
        });
    }

}

何かアイデアをください ?, js 初心者はこちら ;)

4

3 に答える 3

0

jqueryを使用しているときは、 $() 内にセレクターがあることを確認し、これらの行を変更してください

subArrowXPos = curMenu.parent().position();
subArrowDestWidth = curMenu.parent().width();

これに

subArrowXPos = $(curMenu).parent().position();
subArrowDestWidth = $(curMenu).parent().width();
于 2013-09-12T12:46:25.360 に答える
0

curMenu.parent().position() は null を返すため、subArrowXPos は null です。したがって、左のプロパティにアクセスしようとすると、エラーが発生します。curMenu の定義方法を確認してください。問題が見つかるはずです。

于 2013-09-12T12:46:41.933 に答える
0

このエラーは、「subArrowXPos」が null であることを意味します。

これを変更してみてください:

subArrowXPos = curMenu.parent().position();

これで:

subArrowXPos = $(curMenu).parent().position();

問題が解決しない場合は、コードの上でこれを実行してください。

console.log(curMenu);

そして、JavaScript コンソールのコンテンツをコピーして貼り付けます。

于 2013-09-12T12:49:36.127 に答える