1. CDN

需使用3个文件:

  1. jquery.mobile.css
  2. jquery.js
  3. jquery.mobile.js

JQuery Mobile官方的推荐的CDN是:

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

而在国内,可使用速度较快的百度CDN。

<link rel="stylesheet" href="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

使用了这些配置后,即使未编写任何代码,网页已被JQuery Mobile进行了初始化设置。

2. Page Template

一个JQuery Mobile Page的模板:

<!DOCTYPE html>

<html>
    <head>
        <title>JQuery Mobile Page Template</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <link rel="stylesheet" href="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.css">
        <script src="https://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="https://apps.bdimg.com/libs/jquerymobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    </head>

    <body>
        <div data-role="page">
            <div data-role="header">
                <h1>JQuery Mobile Page Template</h1>
            </div>

            <div role="main" class="ui-content">
                <h2>JQuery Mobile Page Template</h2>
                <p>Use this page template as your start-up.</p>
            </div>
            
            <div data-role="footer">
                <h4>All Rights Reserved</h4>
            </div>
        </div>
    </body>
</html>

一个最基本的Page就这样形成了。

3. Page之间的导航

3.1 一个Page形成多个Page的效果

Demo: Multi-page

在一个Page中包含多个data-role="page"的属性,并且为它们分配不同的id值即可。只需简单地相间之间进行链接就行了。

3.2 JQuery Mobile的导航机制

3.2.1 最简单的链接

从最简单的看起。nav-source-1.html是最简单的一个页面。

在该页面上,第一个链接的href属性写为一个并不存在的页面。然后单击此链接,将会看出浏览器中间出现了"Error Loading Page"的错误提示。这说明,即使是最简单的链接,JQM还是试图以Ajax的方式来处理了。

第二个链接能指向名为"nav-dest.html"的页面。能正常跳转。

但是,当通过链接而跳转到nav-dest-1.html页面后,你会发现,在界面上,是显示了nav-dest-1.html的内容,但观看其网页源文件,却发现包含了原来跳转过来的文件的内容:

<html>
<head>...</head>
<body>
<div data-role="page" data-url="nav-source-1.html"></div>
<div class="ui-loader"></div>
<div data-role="page" data-url="nav-dest-1.html" data-external-page="true"></div>
</body>
</html>

如果你再刷新一下nav-dest-1.html的内容,则源页面的内容会消失,而你不能通过浏览器中的返回按钮返回到源页面了。

3.2.2 JQM页面跳转的意义

nav-source-2.html也是简单的一个页面,但它加入了变换特效slide:

this

需注意的是,尽管第2个页面全部加载了,但该页面中如果有两个以上的page, 则只有第一个page会显示出来,且header及其他部分全部被丢弃了。

99. Local Demos

  1. Page Template
  2. Multi Pages in One Page
  3. Persistent Navbar

References