现在的位置: 首页 > 综合 > 正文

jquery mobile学习笔记

2017年10月28日 ⁄ 综合 ⁄ 共 14138字 ⁄ 字号 评论关闭

转载地址:http://kayosite.com/?s=jquery+mobile,感谢博主详细的解说。

总体概况


一、jqm特性

1、跨平台--支持主流的操作系统,android 、ios 、nokia/symbian、windows mobile、blackberry

2、渐进功能增强--对于好的设备表现出更好的功能,比较低端的设备保证基本效果

3、优化触摸体验

4、新的布局控件

5、主题化框架

二、web app与 native app的区别

web app

优点:开发成本低,周期短,跨平台(只要有一个标准的浏览器就能很好的显示),维护方便(直接在服务器端修改就行,不需要每次更新都要求用户下载)

缺点:无法调用手机硬件资源,原生app体验差,需要联网才能打开(当然可以依靠html5大大减少对网络的依赖性)

native app

优点:可以调用手机硬件资源,用户体验出色,可以不依赖网络,更容易获得盈利

缺点:需要兼容主流平台,维护成本高,开发周期长,需要app store或者android market的确认,与第三方分利。

三、jqm基础知识

1、使用方法
meta标签
引入jq库
引入jqm css
引入jqm
<meta name="viewport" content="width=device-width, initial-scale=1">     
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />     
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>     
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
2、data-*属性
添加头部
<div data-role="header">
<h3>网站头部</h3>
</div>

3、对于 jQuery Mobile ,每定义一个 data-role="page" 就相当于一个页面, jQuery Mobile 默认采用 Ajax 的方式操作 DOM,自动隐藏除第一个页面外的所有页面,当点击链接,链接到其他页面时会以 Ajax 的方式加载新页面的内容,

<div data-role="page" id="home">
<h3><a href="#page2">下一页</a></h3>
</div>
<div data-role="page" id="home"><h3><a href="#page2">返回首页</a></h3></div>

这样点击下一页或者返回首页就能实现两个页面互相跳转

组件


四、按钮

在 jQuery Mobile 里,可以通过给任意链接添加 data-role=“button” 来产生一个 button 组件,jQuery Mobile 会追加一定的样式到链接,

<a href="#page2" data-role="button">Link button</a>

图标按钮

添加 data-icon="" 属性来为 button 组件添加一个标准的 Web 图标,并且支持通过 data-iconpos="" 属性设置图标相对于文字的位置( top, bottom, right ,默认为 left )。

<a href="#page2" data-role="button" data-icon="check">Check</a>

按钮组

如果你希望把一些按钮放到一个容器内,构建一个导航之类的独立部件(按钮组),可以将按钮放到一个容器内并给容器设置 data-role="controlgroup" 属性,如果希望得到水平式的按钮组,则添加 data-type="horizontal" 属性到容器里。


其他属性

1. data-theme=“” , 所有的 jQuery Mobile 组件均支持该属性,用于设置组件的颜色, 该属性默认有五个值 a, b, c, d, e,分别代表由深到浅五种颜色,另外开发者还可以通过在 CSS 里添加相应的 Class 来自定义颜色。

 

2. data-inline="" ,内联按钮,button 组件添加该属性后会自动改成内联的形式, jQuery Mobile 会给链接添加 display: inline-block 的 CSS ,让链接按照文字的长度来控制自身长度,并且可以与其他内联元素共行。

五、表单

表单元素只要添加type无需给与data-role属性。如果采用开关效果需要添加data-role="slider"

所有的表单组件,只要是需要与服务器传送数据,都应该包裹在一个 form 标签内,并且应该指定好 form 的 action 和 method 属性。当然如果你使用的是 Web SQL Database 这类本地储存,即数据并不需要与服务器传送,可以不用 form 标签和 sumbit 提交。另外 form 的 id 需要在整站中唯一,由于 jQuery Mobile 使用 Ajax 导航,因此不同的 page 可以同时加载到一个 DOM 中,因此 form id 必须整站唯一以保证每个 DOM 的表单
id 都是不同的。 

每一个表单元素应该要有相应的 label 对应,label 的 for 值要与元素的 id 相同,使其在语义上相关,并且可以使用一个带有 data-role="fieldcontain" 属性的 div 或 fieldset 容器包裹, jQuery Mobile 会自动在容器底部增加一条细边框作为分隔。

选择列表

具有原生菜单和自定义菜单两种形式,HTML select 元素会被自动增强为原生的选择列表组件,若需要自定义样式菜单,可以在 select 上添加
data-native-menu="false"
属性。,若需要禁止选择某一个选项,可以在选项的 option 标签上添加 disabled="disabled"。若需要多项选择,则可以在 select 标签上添加multiple="multiple",另外我们还可以使用<optgrouplabel="Group1"></optgroup对选项进行分组。

<div data-role="fieldcontain">
		<form>
        	<select data-native-menu="false">
            	<optgroup label="标题1">
                    <option>选项1</option>
                    <option>选项2</option>
                    <option>选项3</option>
                    <option>选项4</option>
                </optgroup>
                <optgroup label="标题2">
                    <option>选项1</option>
                    <option>选项2</option>
                    <option>选项3</option>
                    <option>选项4</option>
                </optgroup>
            </select>
        </form>        
    </div>

六、内容格式

1、基本html样式

不加data-*也能美化一些元素,比如表单元素,只要注明type就可以

2、主题内容

支持abcde,data-theme=“”

3、可折叠内容块

<div data-role="collapsible" data-collapsed="false">
		<h3>折叠组件</h3>    
        <div>
        	<p>主要内容</p>
        </div>
    </div>
    <div data-role="collapsible" data-collapsed="false">
    	<h3>嵌套调用</h3>
        <div data-role="collapsible">
        	<h3>biaoti</h3>
        	<p>嵌套主要内容</p>
        </div>
    </div>

4、多栏布局

要创建三栏布局,可以先给父元素添加 ui-grid-b 的 class ,然后分别为第一个子元素添加 ui-block-a 的 class , 第二个元素添加 ui-block-b 的 class ,第三个元素添加 ui-block-c 的 class 。

 

以此类推,四栏布局使用 ui-grid-c 的 class ,五栏布局使用 ui-grid-d 的 class 。

七、列表--data-role="listview"

1、基本列表

 <ul <span style="color:#ff0000;">data-role="listview"</span>>
            <li <span style="color:#ff0000;">data-role="list-divider"</span>>列表标题1</li>
            <li>列表项1</li>
            <li>列表项2</li>
            <li data-role="list-divider">列表标题2</li>
            <li>列表项3</li>
            <li>列表项4</li>
        </ul>

在li内添加a标签列表就可以点击。

2、侧分列表

<ul data-role="listview" data-split-icon="arrow-d">
            <li>
            <a href="#page2">
                <img src="img/01.jpg" />
                <h3>Reviewer A</h3>
                <p>jQuery Mobile 很方便的把这类结构调整为你看到的这个样式</p>
            </a>
            <a href="#" data-rel="dialog">Delete</a>
            </li>
            <li>
            <a href="#page2">
                <img src="img/02.jpg" />
                <h3>Reviewer B</h3>
                <p>jQuery Mobile 很方便的把这类结构调整为你看到的这个样式</p>
            </a>
            <a href="#" data-rel="dialog">Delete</a>
            </li>
            <li>
            <a href="#page2">
                <img src="img/01.jpg" />
                <h3>Reviewer C</h3>
                <p>jQuery Mobile 很方便的把这类结构调整为你看到的这个样式</p>
            </a>
            <a href="#" data-rel="dialog">Delete</a>
            </li>
        </ul>

3、搜索过滤框

<ul data-role="listview" data-filter="true">
    <li><a href="#page2">你</a></li>
    <li><a href="#page2">你好</a></li>
    <li><a href="#page2">你好啊</a></li>
</ul>

七、工具栏

使用 h1 的 HTML 标签包裹文字,这段文字会被解释为标题文字,赋予相关的样式,而在 h1 标签的上下文中,可以通过使用按钮标记放置按钮,其中在 h1 标签上的按钮会被放置在头部栏左边,而在 h1 标签之下的按钮会被放置在头部栏右边。
<div data-role="header" data-theme="b">
		<a href="#home" data-role="back">返回</a>
        <h3>常见头部栏</h3>
        <a href="#home" data-icon="check">保存</a>   
    </div>

我认为这个应该叫tab标签

<div data-role="navbar">
        	<ul>
            	<li><a href="#" class="ui-btn-active">Home</a></li>
                <li><a href="#">Active</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </div>

固定工具栏 点击屏幕 显示/隐藏头部导航
<div data-role="header" data-position="fixed">
    	<h3>我是固定工具栏</h3>
        <a id="top" href="index.html" data-role="button">返回首页</a>
    </div>

八、页面专场和对话框

1、ajax驱动站点

 Ajax 配合 CSS3 动画能做出原生 App 的用户体验。如:当用户点击一个链接时, jQuery Mobile 会分析该 url ,产生 Ajax 请求,并显示一个正在加载的提示框,避免了刷新整个页面。若该次 Ajax 请求成功,则会把新内容加载到 DOM 中,初始化所有组件,并显示页面过场动画。若请求失败,则会显示一个错误提示框,并在几秒后消失。

带有 rel="external" 属性的链接不会通过 Ajax 方式加载,跳转时整个页面会被刷新。添加 data-ajax="false" 属性,这样的链接也不会使用 Ajax 。

2、页面专场

某些移动平台对 transitions 的支持并不足够,如果你的页面在转场时出现闪烁的情况, Kayo 建议你在 CSS 中加入下面这一条 CSS 规则:

.ui-page { -webkit-backface-visibility: hidden; }

默认情况的转场效果是“fade”,即淡出淡入,若需要自定义转场效果,可以使用 data-transition 属性,如把转场效果改为“pop(弹出)”,下面是主要的转场方式

<a href="#page4" data-role="button" data-rel="dialog" data-transition="fade">dialog--fade</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="pop">dialog--pop</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="turn">dialog--turn</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="flow">dialog--flow</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="flip">dialog--flip</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="slide">dialog--slide</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="slidefade">dialog--slidefade</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="slideup">dialog--slideup</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="slidedown">dialog--slidedown</a>
<a href="#page4" data-role="button" data-rel="dialog" data-transition="none">dialog--none</a>

JQM事件方法和内部机制


九、默认配置与事件基础

1、配置

jQuery Mobile 会有一些默认的设置,jQuery Mobile 把所有这些配置都封装在 $.mobile 中,作为它的属性,因此改变这些属性值就可以改变 jQuery Mobile 的默认配置。

当 jQuery Mobile 开始执行时,它会在 document 对象上触发 mobileinit 事件,并且这个事件远早于 document.ready 发生,因此开发者需要通过如下的形式重写默认配置:

$(document).bind("mobileinit", function(){
    // 新的配置
});

新的配置要放在jq之后mobile插件之前。

因为jqm是基与jq的,因此还可以这么写:
$(document).bind("mobileinit", function(){
    $.extend($.mobile, {
        ajaxEnabled: false
    });
});

其他配置参数

activeBtnClass   字符串   默认值:"ui-btn-active"

为激动状态的按钮分配 class 值。

activePageClass   字符串   默认值:"ui-page-active"

为当前页面分配 class 值。

ajaxEnabled   布尔型   默认值:true

控制是否禁止默认的 Ajax 链接点击和表单提交,并停止 hash 的监听,然后以常规的 HTTP 方式进行。

allowCrossDomainPages   布尔型   默认值:false

设置是否允许跨域。因为 jQuery Mobile 会记录 location hash ,这有可能会为网站带来 cross-site scripting (XSS) 攻击,因此该选项默认为 false 。

autoInitializePage   布尔型   默认值:true

当 DOM 加载完毕后,jQuery Mobile 会自动调用 $.mobile.initializePage 方法。如果设置该属性为 false ,则页面不进行初始化,即页面空白。

buttonMarkup.hoverDelay   整形   默认值:200

该属性设置触摸触摸某一个 jQuery Mobile 按钮后添加 hover 和 down 的 class 的延时。该数值越小,延时越小,触摸越灵敏,但同时很有可能错误的触发页面滚动条滚动。因此建议数值不要太小。

defaultDialogTransition   字符串   默认值:"pop"

设置使用 Ajax 方式的对话框的默认过场动画。

defaultPageTransition   字符串   默认值:fade

设置使用 Ajax 方式跳转的页面的默认过场动画。

gradeA   布尔型   默认值:"true"

设置 $.support.mediaquery 的返回值,默认为符合全部 grade A 等级的移动设备的支持条件才会返回 true 。

hashListeningEnabled   布尔型   默认值:true

设置是否监听和处理 location.hash 的改变。

ignoreContentEnabled   布尔值   默认值:false

把该选项设置为 true ,并且在某元素的父元素上设置 data-enhance="false" 属性,那么该元素会自动降低 jQuery Mobile 增强(jQuery Mobile 元素增强指的是 jQuery Mobile 对网页基本元素在样式上的丰富、交互上的增强以及相应的 HTML 结构改造)。

linkBindingEnabled   布尔值   默认值:true

jQuery Mobile 会自动绑定锚标记到文档中,设置该选项为 false 将阻止所有的锚点击处理,例如取消激活按钮状态。一般来说只有在把锚标记处理交给另一个处理库时才设置该属性为 false 。

loadingMessageTextVisible   布尔值   默认值:false

设置当页面加载中的时候是否显示提示文字。

loadingMessage   字符串   默认值:"loading"

设置当页面显示加载提示时,加载提示文字的内容。

loadingMessageTheme   字符串   默认值:"A"

设置当页面显示加载提示时,加载提示的默认主题。

minScrollBack   整形   默认值:250

设置页面最小滚动距离

NS   字符串   默认:""

该属性可以改变 jQurey Mobile 的命名空间,jQuery Mobile 按 data-NS 属性值安排命名空间,默认为空,则直接 data-role ,举个简单的例子,若设置 NS 的值为 "custom" ,则此时需要定义一个 jQuery Mobile 头部的话需要从原来的 data-role="header" 改为 data-custom-role="header" ,其他 data-role 也要改成为 data-custom-role 。这样开发者可以创建属于自己的命名空间,避免与
jQuery Mobile 原有的属性发生冲突, 便于制作自定义主题。

需要注意的是,当你使用了 data-命名空间后,你需要更新 jQuery Mobile css 文件的选择器,格式如下

.ui-mobile [data-custom-role=page], .ui-mobile [data-custom-role=dialog] ......

pageLoadErrorMessage   字符串   默认值:"Error Loading Page"

设置当 Ajax 加载页面错误时显示的提示信息。

pageLoadErrorMessageTheme   字符串   默认值:"e"

设置当 Ajax 加载页面错误时错误提示框的主题样式。

pushStateEnabled   布尔型   默认值:true

在支持的浏览器中开启 history.replaceState 这个增强特性,把哈希值(hash-based)的 Ajax 请求转化为完整的文档路径。jQuery Mobile 建议在关闭 Ajax 导航和大量使用外部链接的情况下关闭这个特性。

subPageUrlKey   字符串   默认值:"ui-page"

URL 参数用来指向由组件生成的子页面(如嵌套列表页),该 URL 会被解释成如 example.html&ui-page=subpageIdentifier 的形式,而在 &ui-page= 之前的哈希值会被 jQuery Mobile 向此 URL 地址做 Ajax 请求。

touchOverflowEnabled   布尔型   默认值:false

设置是否使用设备的原生区域滚动特性,除了 iOS5 之外大部分的设备到目前还不支持原生的区域滚动特性,因此在 jQuery Mobile 1.1.0 中不建议修改该属性。

2、事件

(1)触摸事件
tap 轻击
taphold轻击不放维持750ms
swipe 滑动1s,水平拖拽大于30px,垂直小于75px
swipeleft 左滑动
swiperight 右滑动
(2)虚拟鼠标事件
    vmouseover 处理触摸设备下的 touch 或者桌面环境下的 mouseover 的事件
    vmousedown 处理触摸设备下的 touchstart 或者桌面环境下的 mousedown 的事件
    vmousemove 处理触摸设备下的 touchmove 或者桌面环境下的 mousemove 的事件
    vmouseup 处理触摸设备下的 touchend 或者桌面环境下的 mouseup 的事件
    vclick 处理触摸设备下的 touchend 或者桌面环境下的 click 的事件。在触摸设备上,这个事件会在 vmouseup 事件之后触发的。
    vmousecancel 处理触摸设备下的 touch 或者 桌面环境下的 mousecancel 的事件

(3)设备方向变化事件 

$(window).bind( 'orientationchange', function(e){
    if( e.orientation == "portrait" ) alert('portrait');
    if( e.orientation == "landscape" ) alert('landscape');
});

(4)滚屏事件

scrollstart

当页面开始滚动时触发 scrollstart 事件。但由于 IOS 设备会在页面滚动时冻结 DOM 操作,并且把这些操作加入队列,当页面滚动结束时按队列执行这些 DOM 操作,jQuery Mobile 努力寻找让设备在页面滚动开始前执行 DOM 操作,但现阶段考虑到最终得到的 Web Apps 的兼容性,Kayo 不建议利用 scrollstart 的回调函数执行 DOM 操作。
scrollstop

当页面滚动结束时触发 scrollstop 事件。

(5)布局事件

由于页面中的一些组件,如可折叠模块 (collapsible),列表组件搜索 (listview search) 或是 jQuery 显示/隐藏 (show/hide) 等方法,会导致页面内容大小有较大变化,这样会对一些依赖页面布局的组件,如固定的顶部工具栏 (fixed headers) 造成干扰。因此,当出现以上情况时,jQuery Mobile 会触发一个事件 updatelayout ,通知其他组件需要调整它们的布局以适应页面变化。为了确保这个过程顺利,也可以手动触发这个事件,例如:

$(function() {
    $('#aside').hide().trigger('updatelayout');
    $(document).bind("updatelayout", function(event, ui) {
        // 调整组件
    });
});

(6)动画事件

$(document).bind('pagehide', function(event, ui) {
    $(ui.nextPage).animationComplete(function() {
        // 移除相应的 class
    });
});

(7)事件应用实例

修改配置例子

$(document).bind('mobileinit', function(){
    $.event.special.swipe.horizontalDistanceThreshold = 100; // 修改触发 swipe 事件的最小水平拖曳距离为 100(px)
    $.event.special.swipe.verticalDistanceThreshold = 120; // 修改触发 swipe 事件的最大垂直拖曳距离为 120 (px)
    $.mobile.orientationChangeEnabled = false; // 默认禁止触发 orientationChangeEnabled
});

注意不能使用前文中自定义默认配置时利用 jQuery 的 $.extend 扩展 $.event 对象的方法扩展 $.event 对象,只有 $.mobile 可以使用 $.extend 扩展对象。因此事件 API 中只有 $.mobile.orientationChangeEnabled 可以使用 $.extend 方法进行自定义。

触摸事件例子

$(document).bind('mobileinit', function(){
    $.event.special.swipe.horizontalDistanceThreshold = 100; // 修改触发 swipe 事件的最小水平拖曳距离为 100(px)
    $.event.special.swipe.verticalDistanceThreshold = 120; // 修改触发 swipe 事件的最大垂直拖曳距离为 120 (px)
});
$(function(){
    $("#home").live('swipeleft', function() {
        $('#toPage2').click(); // 为首页绑定向左划动事件
    });
    $("#page-2").live('swiperight', function() {
        $('#toHome').click(); // 为另一页面绑定向右划动事件
    });
});

为了节约篇幅我就只放关键html代码

第一场景

<div data-role="page" id="home">
<a href="#page2" data-role="button" data-transition="flow" id="btn_home">向左滑动下一页</a>
</div>

第二场景

<div data-role="page" id="page2">
<a href="#home" data-role="button" data-direction="reverse" data-transition="slide" id="btn_page21">向右滑动回到首页</a>
<a href="#page3" data-role="button" data-transition="slide"  id="btn_page22">向左滑动下一页</a>
</div>

第三场景

<div data-role="page" id="page3">
<a href="#page2" data-role="button" data-transition="slide" data-direction="reverse" id="btn_page31">向右滑动返回上一页</a>
<a href="#home" data-role="button" data-transition="slide" id="btn_page32">向左滑动回到首页</a>
</div>

js代码

<script>
$(function(){
	$("#home").bind("swipeleft",function(){
		$("#btn_home").click()
	})
	$("#page2").bind("swiperight",function(){
		$("#btn_page21").click()
	})
	$("#page2").bind("swipeleft",function(){
		$("#btn_page22").click()
	})
	$("#page3").bind("swiperight",function(){
		$("#btn_page31").click()
	})
	$("#page3").bind("swipeleft",function(){
		$("#btn_page32").click()
	})
})
</script>

需要注意的地方:

1、三个场景的id必须本站唯一,不是页面唯一,是本站唯一(原因就是jqm的场景或者叫页面是根据ajax加载的,放在同一页面内,如果id不唯一就会有冲突)

2、跳转链接的href要写正确,data-transition的类型可以根据需求自行变化,越绚丽的特效越耗费手机资源,

3、向右滑动之后想再回到一界面怎么办?除了js规定滑动方向和a链接的href指向上一界面之外,还要添加data-direction="reverse",主要是调节滑动方向的,不然你向右滑动之后再向左滑动尽管回到了上一页面但是滑动的方向却是从右边滑入的,不符合逻辑。

十、页面事件与deferred

jQuery Mobile 页面事件使用分为

页面加载事件 (Page load events),

页面跳转事件 (Page change events),

页面显示/隐藏事件 (Page show/hide events),

页面初始化事件 (Page initialization events),

页面移除事件 (Page remove events) 。

(1)页面加载事件

当一个外部页面加载到 DOM 时,会触发两个事件 —— 第一个事件是 pagebeforeload,第二个是 pageload 或 pageloadfailed。

外部页面加载到 DOM 的过程 ,即加载的页面不在当前页面的文档中,而一个文档中的多个 "page" 是本来就存在于 DOM 中,因此在同一文档中的不同 "page" 的跳转不会触发 pagebeforeload 事件。

deferred 对象是在 $.ajax() 内部实现的,所以可以在调用 ajax 时创建 deferred 对象并调用。jQuery Mobile 是基于 ajax 的,包括它的页面加载,并且页面加载的过程在内部实现时已经创建了相应的 deferred 对象,所以在调用页面事件的回调函数时可以调用 deferred 对象。

因此,我们只需指定 ajax 请求成功和失败时的回调函数列表即可方便的进行回调,这两种回调可以分别写在 done() 和 fail() 方法中,而上面介绍的 resolve() 或 rejected() 方法,则分别可以手动执行 done() 和 fail() 方法

done()--resolve()

fail()--rejected()

deferred 状态。deferred 有三种状态:初始化(unresolved),成功(resolved),失败(rejected)。

一次正确的页面跳转中,事件产生的顺序应该是,pagebeforechange , pagebeforeload , pageload , pagechange ,在开发时需要注意这些事件的触发顺序。

(2)页面跳转事件

页面跳转事件由 $.mobile.changePage() 产生,第一个为 pagebeforechange ,第二个是 pagechange 或 pagechangefailed 。

(3)页面显示隐藏事件

$('#page-B').live( 'pagebeforeshow', function(event, ui){
    alert('pagebeforeshow');
});
 
$('#page-B').live( 'pagebeforehide', function(event, ui){
    alert('pagebeforehide');
});
$('#page-B').live( 'pageshow', function(event, ui){
    alert('pageshow');
});
 
$('#page-B').live( 'pagehide', function(event, ui){
    alert('pagehide');
});

从 A 页面点击链接跳转到 B 页面,然后从 B 页面跳转回 A 页面,则触发事件的情况如下,

pagebeforeshow:从 A 跳转到 B,B 页面被显示时(转场开始)触发
pagebeforehide:从 A 跳转到 B,A 页面被隐藏时(转场结束)触发
pageshow:从 B 跳转到 A,A 页面被显示时(转场开始)触发
pagehide:从 B 跳转到 A,B 页面被隐藏时(转场结束)触发

由此可知道JQM是如何实现page跳转的。

十一、JQM方法

http://kayosite.com/web-app-by-jquery-mobile-and-html5-methods-part-one.html
http://kayosite.com/web-app-by-jquery-mobile-and-html5-methods-part-two.html

十二、jQuery Mobile 与响应式

(1)媒体查询
(2)运行媒介查询
(3)设备方向变化
$(window).bind( 'orientationchange', function(e){
    if( e.orientation == 'portrait' ) $('html').addClass('portrait').removeClass('landscape');
    else if( e.orientation == 'landscape' ) $('html').addClass('landscape').removeClass('portrait');
 });

抱歉!评论已关闭.