随身笔记
随身笔记

jquery mobile笔记

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>

 

 

随身笔记

jquery mobile笔记
jquery mobile 1.4.5 定义页面 <div id="page1" data-role="page" data-title="页面title"> <div data-role="header">头部</div> <div data-role="conten…
扫描二维码继续阅读
2016-08-02