2013-03-19 83 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

相关问题