2013-08-24 77 views
1

我正在尋找在頁面加載之前簡單地隱藏和圖像,然後在頁面加載後顯示圖像。問題是,當我嘗試顯示圖像時根本沒有顯示圖像。.Show()在Jquery Mobile中不工作

這裏是我的html代碼:

<body> 

    <div id ="splash" data-role="page"> 
     <center> 
      <div id='class'> <img src="BookBayText.png"></div> 
      <div id='book'> <img src="Book.png"></div> 
     </center> 
    </div> 

</body> 

,這裏是我的JavaScript/jQuery Mobile的:

<script type="text/javascript"> 

     $(document).on('pagebeforeshow','#splash', 
      function() 
      { 
       $("#book").hide(); 
      }); 

     $(document).on('pageinit','#splash', 
      function(){ 

       setTimeout(
        function() 
        { 
         $("#class").animate({top: "1em"}, 'slow'); 
        },3000); 

       //For some reason this line below doesn't run 
       $("#book").show(); 

     }); 
    </script> 

任何想法,爲什麼這是不工作?

+1

這是更好地使用CSS最初隱藏着什麼。此外,您可以使用'$(function(){$('#book')。show();});' –

+0

.animate()方法不會使隱藏元素成爲效果的一部分。 http://api.jquery.com/animate/ – carter

+0

我知道動畫不會隱藏圖像,我使用動畫將BookBayText.png圖像向上移動 – user481610

回答

0

我設法得到預期的效果,我想用下面的代碼:

setTimeout(
    function() 
    { 
     $("#class").animate({top: "1em"}, 'slow'); 
     $("#book").show(); 
    },2000); 

基本上我感動$("#book").show();線到setTimeout函數。但是爲什麼代碼不會在函數外部顯示圖像,這仍然讓我失去了一點點時間。如果有人回答這個問題可以更新這個答案,這將非常感激。

0

有點類似於這個職位jQuery mobile popup on pageinit

雖然這篇文章指責了瀏覽器的延遲,但對於我來說目前還不清楚它爲什麼會這樣做。我從來沒有遇到過這樣的行爲。

  1. 我不知道,如果你做了以下變化:
  2. 把數據角色裏面的中心標籤:內容,
  3. 更換pageinit爲pageshow。
  4. 在pageinit或pageshow(不是settimeout)中搜索您的iem如下 。

>

var elem = $("[data-role='page']:last").find('#book img'); // others may use $.mobile.activePage 

if (elem.length) { 
    // check height or img width here... 
}