jquery mobile 1.4.5
定义页面
<div id="page1" data-role="page" data-title="页面title"> <div data-role="header">头部</div> <div data-role="content"> 内容 </div> <div data-role="footer">底部</div> </div>
data-role=”page” //定义一个页面(必写)
data-role=”header” //声明一个头部(可选)
data-role=”footer” //声明一个底部(可选)
data-title=”页面title” //title
data-role=”button” //按钮样式
data-role=”dialog” //弹窗
最好为页面指定一个id,类似id=”page1″,有时获取页面需要到id来跳转
——————————
同一个页面可以写多个data-role=”page”,表示有多个页面,如
<div id=”page1″ data-role=”page”>内容1</div>
<div id=”page2″ data-role=”page”>内容2</div>
表示有2个页面
链接跳转时
(在jq mobile中一个超级链接默认就是一个ajax)
同页面跳转 <a href=”#page1″></a>
多页模板中的第二个页面 <a href=”index.html#page2″></a>
不同页面跳转<a href=”index.html”></a>
禁用ajax
不是什么页面跳转到适用于ajax的,以下情况均不使用ajax,使用默认跳转方式
<a href=”http://www.xx.com/”> //跳转到其他域名时
<a href=”page2.html” rel=”external”>
<a href=”page2.html” data-ajax=”false”>
<a href=”page2.html” target=”other”>
—————————————
让指定容器页面里面的所有a链接默认都取消ajax
最前面加上:
$.mobile.ignoreContentEnabled=’true’;
在页面容器加上:
<div id=”page1″ data-role=”page” data-title=”页面title” data-ajax=”false”>
在id=”page1″的页面容器里面的a链接默认都取消了ajax的功能
弹窗
<div id="page1" data-role="dialog"> <a href="#" onclick="$('#page1').dialog('close')">关闭弹窗</a> <a href="page2.html" data-rel="back">返回上一页</a> data-rel="back"属性最好为href指定一个地址 </div>
事件
data-rel="back" 返回上页 data-transition="pop" 切换效果(好几种343) 以下事件必须写在jquery.mobile-1.4.5.min.js之前 $( document ).on("mobileinit", function() { //启动jq mobile就触发,仅触发一次 console.log(1); }); $( document ).on("pageinit","#page1",function(event) { //切换到#page1页面时就触发一次,仅触发一次 console.log(1); }); $( document ).on( "pageshow", "#page1", function( event ) { //每次切换到#page1时都触发 console.log(222); }); 以上3种比较常用,执行顺序是: mobileinit > pageinit > pageshow mobileinit和pageinit只能触发一次如果想在重新激活再触发就执行: 例如:$(document).trigger('mobileinit'); //激活mobileinit
触摸事件
//触摸一下屏幕 $("p").on("tap",function(){ $(this).hide(); }); //长按 $("p").on("taphold",function(){ $(this).hide(); }); //滑动 $("p").on("swipe",function(){ $("span").text("滑动检测!"); }); swipeleft //左滑动 swiperight //右滑动 scrollstart //用户开始滚动页面时触发 scrollstop //用户停止滚动页面时触发
111111
事件 | 描述 |
---|---|
hashchange | 启用可标记 #hash 历史,哈希值会在一次独立的点击时发生时变化,比如一个用户点击后退按钮,会通过 hashchange事件进行处理。 |
navigate | 包裹了 hashchange 和 popstate 的事件 |
orientationchange | 方向改变事件,在用户垂直或者水平旋转移动设备时触发。 |
pagebeforechange | 在页面切换之前,触发的事件。使用$.mobile.changePage()来切换页面,此方法触发2个事件,切换之前的pagebeforechange事件,和切换完成后pagechange(成功)或者pagechangefailed(失败)。 |
pagebeforecreate | 页面初始化时,初始化之前触发。 |
pagebeforehide | 在页面切换后旧页面隐藏之前,触发的事件。 |
pagebeforeload | 在加载请求发出之前触发 |
pagebeforeshow | 在页面切换后显示之前,触发的事件。 |
pagechange | 在页面切换成功后,触发的事件。使用$.mobile.changePage()来切换页面,此方法触发2个事件,切换之前的pagebeforechange事件,和切换完成后pagechange(成功)或者pagechangefailed(失败)。 |
pagechangefailed | 在页面切换失败时,触发的事件。使用$.mobile.changePage()来切换页面,此方法触发2个事件,切换之前的pagebeforechange事件,和切换完成后pagechange(成功)或者pagechangefailed(失败)。 |
pagecontainerbeforeload | 在载入任何请求前触发 |
pagecontainerload | 在页面成功载入并插入 DOM 后触发 |
pagecontainerloadfailed | 页面载入失败时触发 |
pagecreate | 在页面创建成功之后,触发的事件,但增强完成之前。 |
pagehide | 在页面切换后老页面隐藏之后,触发的事件。 |
pageinit | 1.4.0 版本后已废弃,使用 pagecreate 替代。在页面页面初始化时,触发的事件。 |
pageload | 1.4.0 版本后已废弃,使用 pagecontainerload 替代。在页面完全加载成功后触发。 |
pageloadfailed | 1.4.0 版本后已废弃,使用 pagecontainerloadfailed 替代。如果页面请求失败触发。 |
pageremove | 在窗口视图从 DOM 中移除外部页面之前触发。 |
pageshow | 在过渡动画完成后,在”到达”页面触发。 |
scrollstart | 当用户开始滚动页面时触发。 |
scrollstop | 当用户停止滚动页面时触发。 |
swipe | 当用户在元素上水平滑动时触发。 |
swipeleft | 当用户从左划过元素超过 30px 时触发。 |
swiperight | 当用户从右划过元素超过 30px 时触发。 |
tap | 当用户敲击某元素时触发。 |
taphold | 当元素敲击某元素并保持一秒时触发。 |
throttledresize | 启用可标记 #hash 历史记录 |
updatelayout | 由动态显示/隐藏内容的 jQuery Mobile 组件触发。 |
vclick | 虚拟化的 click 事件处理器 |
vmousecancel | 虚拟化的 mousecancel 事件处理器 |
vmousedown | 虚拟化的 mousedown 事件处理器 |
vmousemove | 虚拟化的 mousemove 事件处理器 |
vmouseout | 虚拟化的 mouseout 事件处理器 |
vmouseover | 虚拟化的 mouseover 事件处理器 |
vmouseup | 虚拟化的 mouseup 事件处理器 |
111111
屏幕水平、垂直事件
$(window).on("orientationchange",function(event){ alert("方向是: " + event.orientation); });
预缓存、预加载
<a href=”index.html” data-prefetch></a> //预加载,会提前把index.html页面内容加载进来
<div data-role=”page” id=”page2″ data-dom-cache=”true”> //缓存,下次进入到此页面时就不需要请求服务器了
锚文本跳转
直接上案例: $('a.here').on('click vclick',function(){ var a_=$( $(this).attr('href') ).get(0).offsetTop; $.mobile.silentScroll(a_); return false; }); <a class="here" href="#fuck">锚记</a> . . . <p id="fuck">内容内容内容内容内容内容</p>