2013-03-19 55 views
2

我做的活動導航指示箭頭一些工作在我的個人網站:jQuery - 頁面加載時無法計算元素寬度?

問題:導航指示箭頭不會在頁面加載活動項下的中心,但會在窗口大小調整。

我使用到中心的箭頭的代碼(關於http://staging.rjlacount.com/js/functions.js 80行開始)如下:

var $arrowOffset = 8; 

var navArrowCenter = function() { 
    var $current_page_item = $(".current_page_item a"); 
    $arrow 
    .css("left", $current_page_item.position().left + (($current_page_item.width()/2) - $arrowOffset)); 
}; 

$wind.resize(function() { 
    navArrowCenter(); 
}); 

$wind.load(function() { 
    navArrowCenter(); 
}); 

我試圖除去上負載的功能的頁面褪色,假設它是造成jQuery來無法正確呈現元素寬度,但似乎並未影響該問題。

任何一點在正確的方向將不勝感激。

謝謝!

回答

2

您是否嘗試將其從$(window).load()中刪除?

試試這個:

navArrowCenter(); 

相反的:

$wind.load(function() { 
    navArrowCenter(); 
}); 
+0

非常感謝你,這個伎倆。也有道理,有時候我猜想只需要另一組眼睛。 :-) – 2013-03-19 16:18:57

0

我想這是因爲DOM尚未準備好。嘗試在文件ready而不是load

$(document).ready(function(){ 
    navArrowCenter(); 
}); 

順便說一句,如果這是一個JQuery load(像它看起來是),那麼這是完全不同的東西 - 它是用來從另一個網頁加載HTML。


看完您的代碼後,您已經擁有了document ready中的所有內容。所以,正如@Blowsie所說,只需調用該函數而不將其包裝在您的$wind.load

+0

似乎他所有的代碼已經在文檔準備函數內部。 – Blowsie 2013-03-19 15:10:59

+0

@Blowsie:我現在看到了,也許你的回答是正確的,然後 – musefan 2013-03-19 15:13:05

相關問題