在mobile.changepage外部HTML文件需要页面刷新

时间:2015-10-12 09:02:08

标签: html jquery-mobile refresh external

我多年来一直在寻找这个问题的解决方案。 1st Splash页面有超时持续时间,然后它加载主页和链接列表。链接显示但图标(真棒图标)未加载,我在每个 li 上设置的转换也未加载。 一旦页面加载,如果我刷新它所有具有过渡效果的内容正在工作。我正在使用animate.css进行列表动画。

有人可以找出问题吗?

SPLASH PAGE CODE

<!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>

主页代码

<!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>

1 个答案:

答案 0 :(得分:0)

默认情况下,jQM通过AJAX将页面加载到当前DOM中,并且只获取带有data-role =&#34; page&#34;的第一个DIV。因此,不会加载第二页中的任何脚本/ css。

由于您打算用第一页完全替换启动,您可以使用

location.assign("home.html");

如果你真的想要很好的转换,只需在第一页中包含启动页面作为单独的data-role =&#34; page&#34; div,或者在data-role =&#34; page&#34;中包含来自home的所有脚本。 div所以他们被装进了dom。