2015-10-12 41 views
1

我一直在寻找这个问题的解决方案很多天。 1st Splash Page具有超时时间,然后它会加载带有链接列表的主页。链接正在显示,但图标(真棒图标)没有加载,我设置在每个li上的转换也没有加载。 一旦页面加载,如果我刷新它的所有内容与过渡效果正在工作。我正在使用animate.css进行列表动画。on mobile.changepage外部HTML文件需要页面刷新

有人可以找出问题吗?

SPLASH页面代码

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Splash</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.5.min.css"> 
    <link rel="stylesheet" href="_assets/css/jqm-demos.css"> 
    <link rel="stylesheet" href="css/animate.min.css"> 
    <link rel="stylesheet" href="css/myapp.css"> 
    <link rel="shortcut icon" href="favicon.ico"> 
    <script src="js/jquery.js"></script> 
    <script src="_assets/js/index.js"></script> 
    <script src="js/jquery.mobile-1.4.5.min.js"></script> 
    <script> 
     $(document).on('pageinit','#splash',function(){ 
     // the .on() method does require jQuery 1.7 + but this will allow you to have the contained code only run when the #splash page is initialized. 
     setTimeout(function(){ 
      //$.mobile.pageContainer.pagecontainer("change", "home.html", {transition: "animated fadeOut"}); 
      $.mobile.changePage("home.html", "animated fadeOut"); 
     }, 4000); 
    }); 
    </script> 
    </head> 
    <body> 
    <div data-role="page" id="splash"> 
     <div data-role="content"> 
      <img src="images/uos_logo.svg" alt="startup image" style="width: 100%; height: 100%" /> 
     </div> 
    </div> 


<!-- /page --> 

</body> 
</html> 

主页CODE

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Home</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="css/themes/default/jquery.mobile-1.4.5.min.css"> 
    <link rel="stylesheet" href="_assets/css/jqm-demos.css"> 
    <link rel="stylesheet" href="css/myapp.css"> 
    <link rel="stylesheet" href="css/font-awesome.min.css"> 
    <link rel="stylesheet" href="css/animate.min.css"> 
    <link rel="shortcut icon" href="favicon.ico"> 
    <script src="js/jquery.js"></script> 
    <script src="_assets/js/index.js"></script> 
    <script src="js/jquery.mobile-1.4.5.min.js"></script> 
    </head> 
    <body> 

    <div data-role="page" id="home">   
     <div data-role="content"> 
      <ul id="myTabs" class="animated slideInUp"> 
       <li class="clr1"><a href="#"><i class="fa fa-angle-right"></i> 1</a></li> 
       <li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 2</a></li> 
       <li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 3</a></li> 
       <li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 4</a></li> 
       <li class="clr5"><a href="#"><i class="fa fa-angle-right"></i> 5</a></li> 
       <li class="clr6"><a href="#"><i class="fa fa-angle-right"></i> 6</a></li> 
       <li class="clr7"><a href="#"><i class="fa fa-angle-right"></i> 7</a></li> 
       <li class="clr6"><a href="#"><i class="fa fa-angle-right"></i> 8</a></li> 
       <li class="clr5"><a href="#"><i class="fa fa-angle-right"></i> 9</a></li> 
       <li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 10</a></li> 
       <li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 11</a></li> 
       <li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 12</a></li> 
       <li class="clr1"><a href="#"><i class="fa fa-angle-right"></i> 13</a></li> 
       <li class="clr2"><a href="#"><i class="fa fa-angle-right"></i> 14</a></li> 
       <li class="clr3"><a href="#"><i class="fa fa-angle-right"></i> 15</a></li> 
       <li class="clr4"><a href="#"><i class="fa fa-angle-right"></i> 16</a></li> 
      </ul> 
     </div> 
    </div> 
<!-- /page --> 


<script type="text/javascript"> 
    $('ul#myTabs li').each(function(i){ 
    var t = $(this); 
    setTimeout(function(){ t.addClass('animated slideInUp'); }, (i+1) * 120); 
    }); 
</script> 

</body> 
</html> 

回答

0

默认情况下JQM加载页面到通过AJAX当前的DOM,并只得到数据,角色的第一个DIV = “页”。因此第二页中的任何脚本/ css都不会被加载。

当你的意图是要完全取代第一页飞溅,你可以只使用

location.assign("home.html"); 

如果你真的想要很好的过渡,只包括你的第一页中的初始页面作为一个单独的数据-role =“page”div,或者在data-role =“page”div中包含来自home的所有脚本,以便将它们加载到dom中。

+0

谢谢,这真的有帮助。 – Malik