![](/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.