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。所以当你尝试访问 left 属性时,你会得到一个错误。检查你如何定义 curMenu,我打赌你会发现一个问题。

于 2013-09-12T12:46:41.933 回答
0

该错误意味着“subArrowXPos”为空。

尝试改变这一点:

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

这样:

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

如果它不能解决问题,请在您的代码之上执行此操作:

console.log(curMenu);

并复制粘贴您的 javascript 控制台的内容。

于 2013-09-12T12:49:36.127 回答