![](/img/trans.png)
[英]JavaScript error: Uncaught TypeError: Cannot read property 'remove' 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});
};
抱歉,在这个问题上我没有更多的选择了。 任何帮助将不胜感激。 谢谢。
您正在读取上一行返回的对象剩余的属性。 失败的行是:
var mainNavigationPosition = mainNavigationOffset.left;
该错误意味着mainNavigationOffset未定义。
因为mainNavigationOffset设置为:
var mainNavigationOffset = $('.js-nav-container > ul').offset();
jQuery可能无法获取元素$('。js-nav-container> ul')的偏移量。
如jquery文档所述:
注意:jQuery不支持获取隐藏元素的偏移坐标,也不支持在body元素上设置边框,边距或填充。
尽管可以使用visible:hidden set获得元素的坐标,但display:none不会从渲染树中排除,因此其位置是不确定的。
检查该元素是否实际可见。
另一个选择(看来确实发生了什么)是jquery表达式:
$('.js-nav-container > ul')
不返回任何元素。
要查看该元素是否可见,可以使用chrome dev工具:
或者,您可以简单地在控制台中执行:
$('.js-nav-container > ul').css("display");
$('.js-nav-container > ul').css("visibility");
检查您的jQuery版本是否为1.2以上,.offset()方法可能在较早的版本中不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.