JavaScript error: Uncaught TypeError: Cannot read property 'left' of undefined
JavaScript error: Uncaught TypeError: Cannot read property 'left' of undefined
这是一个非常烦人的错误,关于这个控制台错误似乎有各种各样的问题。使用 chrome.
在控制台中使用它并没有给我很多东西
/**
* Dropdown menu positioning
*/
loc.dropMenuPositioning = function (){
var dropMenu = $('.js-dropdown-item-wrap');
var mainNavigationOffset = $('.js-nav-container > ul').offset();
var mainNavigationPosition = mainNavigationOffset.left;
dropMenu.css({'left' : mainNavigationPosition - 60});
};
抱歉,关于这个问题,我没有太多可说的了。任何帮助将不胜感激。谢谢。
试试这个,jQuery doc
dropMenu.offset({ left: mainNavigationPosition - 60 });
否则,您可能需要将位置设置为绝对或相对:
link
检查您的jQuery版本是否达到1.2,.offset()方法可能无法在旧版本中使用。
您正在从上一行返回的对象读取 属性 left。失败的行是:
var mainNavigationPosition = mainNavigationOffset.left;
错误表示mainNavigationOffset未定义。
因为mainNavigationOffset设置为:
var mainNavigationOffset = $('.js-nav-container > ul').offset();
可能 jquery 无法获取元素 $('.js-nav-container > ul') 的偏移量。
如 jquery 文档所述:
Note: jQuery does not support getting the offset coordinates of hidden
elements or accounting for borders, margins, or padding set on the
body element.
While it is possible to get the coordinates of elements with
visibility:hidden set, display:none is excluded from the rendering
tree and thus has a position that is undefined.
检查元素是否确实可见。
另一个选项(这似乎是真正发生的事情)是 jquery 表达式:
$('.js-nav-container > ul')
没有返回任何元素。
要查看元素是否可见,您可以使用 chrome 开发工具:
显示不能等于none
可见性必须等于可见
或者你可以直接在控制台执行:
$('.js-nav-container > ul').css("display");
$('.js-nav-container > ul').css("visibility");
这是一个非常烦人的错误,关于这个控制台错误似乎有各种各样的问题。使用 chrome.
在控制台中使用它并没有给我很多东西 /**
* Dropdown menu positioning
*/
loc.dropMenuPositioning = function (){
var dropMenu = $('.js-dropdown-item-wrap');
var mainNavigationOffset = $('.js-nav-container > ul').offset();
var mainNavigationPosition = mainNavigationOffset.left;
dropMenu.css({'left' : mainNavigationPosition - 60});
};
抱歉,关于这个问题,我没有太多可说的了。任何帮助将不胜感激。谢谢。
试试这个,jQuery doc
dropMenu.offset({ left: mainNavigationPosition - 60 });
否则,您可能需要将位置设置为绝对或相对:
link
检查您的jQuery版本是否达到1.2,.offset()方法可能无法在旧版本中使用。
您正在从上一行返回的对象读取 属性 left。失败的行是:
var mainNavigationPosition = mainNavigationOffset.left;
错误表示mainNavigationOffset未定义。
因为mainNavigationOffset设置为:
var mainNavigationOffset = $('.js-nav-container > ul').offset();
可能 jquery 无法获取元素 $('.js-nav-container > ul') 的偏移量。
如 jquery 文档所述:
Note: jQuery does not support getting the offset coordinates of hidden elements or accounting for borders, margins, or padding set on the body element.
While it is possible to get the coordinates of elements with visibility:hidden set, display:none is excluded from the rendering tree and thus has a position that is undefined.
检查元素是否确实可见。
另一个选项(这似乎是真正发生的事情)是 jquery 表达式:
$('.js-nav-container > ul')
没有返回任何元素。
要查看元素是否可见,您可以使用 chrome 开发工具:
显示不能等于none
可见性必须等于可见
或者你可以直接在控制台执行:
$('.js-nav-container > ul').css("display");
$('.js-nav-container > ul').css("visibility");