2013-03-14 65 views
0

我有我的網站上的一些網頁,我把這個在我所有的html代碼:Phonegap - 爲什麼我的div高度返回0?

<div id="footer" data-role="footer" class="clearfix"> 
     <div id="footerMenu" class="ui-grid-d"> 
      <div class="ui-block-a footerBlock"> 
       <a href="index.html"><img src="images/global/bottom_menu/product_active.png" /></a> 
      </div> 
      <div class="ui-block-b footerBlock"> 
       <a href="favorite.html"><img src="images/global/bottom_menu/fav.png" /></a> 
      </div> 
      <div class="ui-block-d footerBlock"> 
       <a href="about.html"><img src="images/global/bottom_menu/about.png" /></a> 
      </div> 
      <div class="ui-block-e footerBlock"> 
       <a href="settings.html"><img src="images/global/bottom_menu/settings.png" /></a> 
      </div> 
      </div> 
    </div> 

CSS:

#footerMenu { 
    background-color:#23476E; 
    position:fixed; 
    left:0px; 
    bottom:0px; 
    width:100%; 
    opacity:1 !important; 
    display:block; 
    z-index:1000; 
} 

#footerMenu img { 
    margin: 0 auto; 
    width:96%; 
} 

.footerBlock a{ 
    text-align:center; 
    display:block; 
} 

我的JS:

$('#searchResultPage').live('pageshow', function(){ 
    console.log("height: " + $("#footer").height(); 
}); 

然後,我的應用程序將作爲第一頁加載index.html,並且如上所述,我可以通過$("#footer").height()獲得頁腳高度。但是當我試圖從about.html再次獲得高度時,例如,高度返回0.

是否有人可以告訴我爲什麼高度返​​回0?

+1

你應該顯示你的CSS。我假設footerBlock的浮動? – kennypu 2013-03-14 03:50:53

+0

使用jquery mobile?我認爲它做了一些瘋狂的DOM注入,可能有多個ID或者抓錯了一個。如果我記得你必須用jquery mobile重新啓動或初始化。我相信'$(document).ready'不是用jqmobile去的。粘貼您的JavaScript以及包括如何初始化。 – Leeish 2013-03-14 03:51:52

+0

閱讀PAGE下的http://jquerymobile.com/demos/1.3.0/docs/faq/。我敢打賭你的問題是基於其中之一的。您無法遵循與jQuery移動平臺一樣的常規網站使用方法,因爲DOM在每個頁面上注入的方式有幾個跳躍點。 – Leeish 2013-03-14 03:56:59

回答

0

即使準備好文檔已經開啓,我很可能還沒有加載圖像(我最近遇到過這個問題)。由於您尚未提供圖片大小,因此只要瀏覽器知道div高度爲零。

最簡單的解決方案是在您的<img...>標記中包含圖像大小。

+0

除此之外,還有其他可能的解決方案嗎? – Rendy 2013-03-14 06:20:11

+0

只需將圖像大小指定到img標記中即可。 – Imperative 2013-03-14 06:50:45

+0

除非你可以想出一個方法來獲得所有圖像加載後的事件,然後調整div的大小。我從來沒有能夠找到任何適用於此的東西。 – 2013-03-14 19:10:54