Jquery移动导航页面刷新css已删除

时间:2013-03-11 08:26:45

标签: jquery-mobile

我有两个页面,我计划使用JQM移动框架进行导航,我计划多个页面,因为我的代码很整洁,我决定在不同的html文件中有多个页面。在导航到下一个屏幕页面时刷新页面CSS没有加载。

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Page 1</title>
<link rel="stylesheet"
    href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<script
    src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
<script type="text/javascript">
$(document).swipeleft(function() {
    $.mobile.changePage("page2.html");
});

</script>
</head>
<body>
    <div data-role="page" id="page1" data-dom-cache="true">
    <div data-role="header"></div>
        <div data-role="content">
            <div data-role="collapsible-set" data-theme="c" data-content-theme="d">
                <div data-role="collapsible">
                    <h3>Section 1</h3>
                    <p><a href="page2.html" data-transition="slide" >I'm the collapsible content for section 1</a></p>
                </div>
                <div data-role="collapsible">
                    <h3>Section 2</h3>
                    <p>I'm the collapsible content for section 2</p>
                </div>
                <div data-role="collapsible">
                    <h3>Section 3</h3>
                    <p>I'm the collapsible content for section 3</p>
                </div>
            </div>
        </div>  
        <div data-role="footer"></div> 
    </div>

</body>
</html>

第2页:我有以下代码

<div data-role="page" id="page2" data-dom-cache="true">
<div data-role="header"></div>
    <div data-role="content">
        <div data-role="collapsible-set" data-theme="c" data-content-theme="d">
            <div data-role="collapsible">
                <h3>Page 2</h3>
                <p>
                    <a href="page3.html" data-transition="slide">I'm the
                        collapsible content for section 1</a>
                </p>
            </div>
            <div data-role="collapsible">
                <h3>Section 2</h3>
                <p>I'm the collapsible content for section 2</p>
            </div>
            <div data-role="collapsible">
                <h3>Section 3</h3>
                <p>I'm the collapsible content for section 3</p>
            </div>
        </div>
    </div>
    <div data-role="footer"></div>
</div>

导航发生但当我刷新页面时,css被删除。如何有多个页面并在屏幕之间导航。

2 个答案:

答案 0 :(得分:2)

page1.html 更改为

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>Page 1</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
</head>
<body>
    <div data-role="page" id="page1" data-dom-cache="true">
    <div data-role="header"></div>
        <div data-role="content">
            <div data-role="collapsible-set" data-theme="c" data-content-theme="d">
                <div data-role="collapsible">
                    <h3>Section 1</h3>
                    <p><a href="page2.html" data-transition="slide" >I'm the collapsible content for section 1</a></p>
                </div>
                <div data-role="collapsible">
                    <h3>Section 2</h3>
                    <p>I'm the collapsible content for section 2</p>
                </div>
                <div data-role="collapsible">
                    <h3>Section 3</h3>
                    <p>I'm the collapsible content for section 3</p>
                </div>
            </div>
        </div>  
        <div data-role="footer"></div> 
    </div>
<script type="text/javascript">
$('#page1').on('pageshow',function(event){
    $("#page1").swiperight(function () {
        $.mobile.changePage("page2.html");
    });

});
</script>
</body>
</html>

并将 page2.html 更改为

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>Page 1</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
</head>
<body>
    <div data-role="page" id="page2" data-dom-cache="true">
        <div data-role="header"></div>
            <div data-role="content">
                <div data-role="collapsible-set" data-theme="c" data-content-theme="d">
                    <div data-role="collapsible">
                        <h3>Page 2</h3>
                        <p>
                            <a href="page3.html" data-transition="slide">I'm the
                                collapsible content for section 1</a>
                        </p>
                    </div>
                    <div data-role="collapsible">
                        <h3>Section 2</h3>
                        <p>I'm the collapsible content for section 2</p>
                    </div>
                    <div data-role="collapsible">
                        <h3>Section 3</h3>
                        <p>I'm the collapsible content for section 3</p>
                    </div>
                </div>
            </div>
            <div data-role="footer"></div>
        </div>
<script type="text/javascript">
$('#page2').on('pageshow',function(event){
    alert('page2 loaded');
});
</script>
</body>
</html>

现在应该可以了。请告诉我发生了什么。我将脚本包装在$('#page2').on('pageshow',function(event){});中。这是我做过的唯一改变。

答案 1 :(得分:1)

我指的是使用旧版JQM的http://m.stanford.edu/#events

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4.1 jquery.mobile1.0a4.1.min.css" /> 
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>

和最新版本即

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

上述问题是通过

为最新版本完成的
$(document).on("mobileinit", function () {
    $.mobile.pushStateEnabled = false; 
});