2014-01-14 52 views
0

我试图在我的AngularJS应用程序中获取#header元素的高度,但是jQuery似乎返回了错误的高度。目前的代码基本上包括:jQuery返回错误的元素高度

$(document).ready(function() { 
    function resizeCover() { 
     console.log($('#header').height()); 
    } 

    resizeCover(); 
}); 

在控制台中,我可以看到输出20,但是这是不正确的,这可以从我的突出#header元素与Chrome浏览器开发工具中可以看出:

enter image description here

我也试过使用outerHeight(),但也返回20。

头makrup如下:

<div id="header"> 
    <div class="container"> 
     <div id="logo"> 
      <a ng-href="/">Company Ltd</a> 
     </div> 

     <ng-include src="'/partials/global-shared/navigation.html'"></ng-include> 
    </div> 
</div> 

我不认为这是ng-include这是造成麻烦,因为#logo格设置为是100px的固定高度应扩大的#header高度。

什么可能导致jQuery返回错误的元素高度?

+3

它可能是因为某些内容在计算高度后加载 –

+0

原因可能是计时问题(比赛条件)或CSS相关或角度相关。如果我们没有全貌,很难找到问题。准备一个小提琴或一个** [SSCCE](http://sscce.org)**肯定会帮助... – gkalpak

+0

是的,设置一个小提琴:http://jsfiddle.net/那么我们可能能够帮助你 –

回答

1

你说你正在使用角度,但高度的输出是文档就绪功能。 因此,在运行ng-include之前,浏览器控制台正在输出标题的高度。

在触发ng-include后,将header header.log标题放入角度应用程序的某处。