jQuery Mobile 页面事件

在 jQuery Mobile 中与页面打交道的事件被分为四类:

  • Page Initialization - 在页面创建前,当页面创建时,以及在页面初始化之后
  • Page Load/Unload - 当外部页面加载时、卸载时或遭遇失败时
  • Page Transition - 在页面过渡之前和之后
  • Page Change - 当页面被更改,或遭遇失败时

jQuery Mobile Initialization 事件

当 jQuery Mobile 中的一张典型页面进行初始化时,它会经历三个阶段:

  • 在页面创建前
  • 页面创建
  • 页面初始化

每个阶段触发的事件都可用于插入或操作代码。

事件 描述
pagebeforecreate 当页面即将初始化,并且在 jQuery Mobile 已开始增强页面之前,触发该事件。
pagecreate 当页面已创建,但增强完成之前,触发该事件。
pageinit 当页面已初始化,并且在 jQuery Mobile 已完成页面增强之后,触发该事件。

下面的例子演示在 jQuery Mobile 中创建页面时,何时触发每种事件:

$(document).on("pagebeforecreate",function(event){
alert("触发 pagebeforecreate 事件!");
});
$(document).on("pagecreate",function(event){
alert("触发 pagecreate 事件!");
});
$(document).on("pageinit",function(event){
alert("触发 pageinit 事件!")
});

jQuery Mobile Load 事件

页面加载事件属于外部页面。

无论外部页面何时载入 DOM,将触发两个事件。第一个是 pagebeforeload,第二个是 pageload (成功)或 pageloadfailed(失败)。

下表中解释了这些事件:

事件 描述
pagebeforeload 在任何页面加载请求作出之前触发。
pageload 在页面已成功加载并插入 DOM 后触发。
pageloadfailed 如果页面加载请求失败,则触发该事件。默认地,将显示 "Error Loading Page" 消息。

下列演示 pageload 和 pagloadfailed 事件的工作原理:

$(document).on("pageload",function(event,data){
alert("触发 pageload 事件!\nURL: " + data.url);
});
$(document).on("pageloadfailed",function(event,data){
alert("抱歉,被请求页面不存在。");
});

jQuery Mobile 过渡事件

我们还可以在从一页过渡到下一页时使用事件。

页面过渡涉及两个页面:一张“来”的页面和一张“去”的页面 - 这些过渡使当前活动页面(“来的”页面)到新页面(“去的”页面的改变过程变得更加动感。

事件 描述
pagebeforeshow 在“去的”页面触发,在过渡动画开始前。
pageshow 在“去的”页面触发,在过渡动画完成后。
pagebeforehide 在“来的”页面触发,在过渡动画开始前。
pagehide 在“来的”页面触发,在过渡动画完成后。

下列演示了过渡时间的工作原理:

$(document).on("pagebeforeshow","#pagetwo",function(){ // 当进入页面二时
alert("页面二即将显示");
});
$(document).on("pageshow","#pagetwo",function(){ // 当进入页面二时
alert("现在显示页面二");
});
$(document).on("pagebeforehide","#pagetwo",function(){ // 当离开页面二时
alert("页面二即将隐藏");
});
$(document).on("pagehide","#pagetwo",function(){ // 当离开页面二时
alert("现在隐藏页面二");
});

jQuery Mobile 事件参考手册

下表列出了所有的 jQuery Mobile 事件。

注释:请通过使用 on() 方法来绑定事件。

事件 描述
hashchange 启用 bookmarkable #hash 历史记录。
navigate 针对 hashchange 和 popstate 的 wrapper 事件。
orientationchange 当用户垂直或水平旋转其移动设备时触发。
pagebeforechange 在页面变化周期内触发两次:任意页面加载或过渡之前触发一次,接下来在页面成功完成加载后,但是在浏览器历史记录被导航进程修改之前触发。
pagebeforecreate 当页面即将被初始化,但是在增强开始之前触发。
pagebeforehide 在过渡动画开始前,在“来源”页面上触发。
pagebeforeload 在作出任何加载请求之前触发。
pagebeforeshow 在过渡动画开始前,在“到达”页面上触发。
pagechange 在 changePage() 请求已完成将页面载入 DOM 并且所有页面过渡动画已完成后触发。
pagechangefailed 当 changePage() 请求对页面的加载失败时触发。
pagecreate 当页面已创建,但是增强完成之前触发。
pagehide 在过渡动画完成后,在“来源”页面触发。
pageinit 当页面已经初始化并且完成增强时触发。
pageload 在页面成功加载并插入 DOM 后触发。
pageloadfailed 如果页面加载请求失败,则触发。
pageremove 在窗口视图从 DOM 中移除外部页面之前触发。
pageshow 在过渡动画完成后,在“到达”页面触发。
scrollstart 当用户开始滚动页面时触发。
scrollstop 当用户停止滚动页面时触发。
swipe 当用户在元素上水平滑动时触发。
swipeleft 当用户从左划过元素超过 30px 时触发。
swiperight 当用户从右划过元素超过 30px 时触发。
tap 当用户敲击某元素时触发。
taphold 当元素敲击某元素并保持一秒时触发。
throttledresize 启用 bookmarkable #hash 历史记录
updatelayout 由动态显示/隐藏内容的 jQuery Mobile 组件触发。
vclick 虚拟化的 click 事件处理器
vmousecancel 虚拟化的 mousecancel 事件处理器
vmousedown 虚拟化的 mousedown 事件处理器
vmousemove 虚拟化的 mousemove 事件处理器
vmouseout 虚拟化的 mouseout 事件处理器
vmouseover 虚拟化的 mouseover 事件处理器
vmouseup 虚拟化的 mouseup 事件处理器

jQuery Mobile 页面事件的更多相关文章

  1. jQuery Mobile 页面事件总结

    一.页面初始化事件(Page initiallization) 在页面创建前,当页面创建时,以及在页面初始化之后.只在第一次加载时执行. 1. pagebeforecreate 页面创建前 [sour ...

  2. jQuery Mobile页面跳转切换的几种方式

    jQuery Mobile在移动开发中越来越受到欢迎. 而他的各个版本号也在持续不断的更新中.相同的我也非常喜欢它,它加快了我们开发HTML5的速度. 同一时候又具备jQuery一样的操作方法. 学起 ...

  3. [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布

    [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局 当我们专注地研究人类生活的空虚,并考虑荣华富贵空幻无常时,或许我们正在阿谀逢迎自己懒惰的天 ...

  4. (二)Jquery Mobile介绍以及Jquery Mobile页面与对话框

    Jquery Mobile介绍以及Jquery Mobile页面与对话框  一. Adobe Dreamweaver CS6 环境 最新版本的cs6会支持JM的使用,有自动提示功能,很强大.安装说明地 ...

  5. 用谷歌浏览器Chrome浏览jQuery Mobile页面需要配置Tomcat服务器

    在浏览jQuery Mobile 页面中,除了 Chrome浏览器出错外,其他的浏览器都ok: 这里,是因为需要单独配置 Tomcat 服务: 1.先配置java jdk: 2.下载,安装,配置,To ...

  6. 02.Jquery Mobile介绍以及Jquery Mobile页面与对话框

    一.为什么要学Jquery Mobile   JqueryMobile 是jquery的移动版本,懂基本的jquery知识,会简单的html+css就可以完成很多复杂的功能,还有就是这个框架在企业中用 ...

  7. jQuery Mobile页面返回无需重新get

    最近公司的web app项目,使得我有幸一直接触和学习jQuery Mobile.这确实是一个很不错的移动开发库,有助于擅长web开发的工程师,快速入门并构建自己的移动应用.但是在前两天,我碰到了一个 ...

  8. jquery mobile Touch事件

    Touch事件在用户触摸屏幕(页面)时触发 1.jquery mobile tap tap事件在用户敲击某个元素时触发 $("p").on("tap",fucn ...

  9. JQuery Mobile 页面参数传递

    在单页模版中使用基于HTTP的方式通过POST和GET请求传递参数,而在多页模版中不需要与服务器进行通信,通常在多页模版中有以下三种方法来实现页面间的参数传递. 1.GET方式:在前一个页面生成参数并 ...

随机推荐

  1. PHP 结合实例认识 Socket

    一.简介 (本部分参考自 揭开Socket的神秘面纱 - 源码工作室) 请结合下图 Socket 抽象层的位置来理解.Socket 是应用层和 TCP/IP 协议族进行通信的中间软件抽象层,是一组接口 ...

  2. 64_p3

    perl-Locale-Msgfmt-0.15-17.fc26.noarch.rpm 12-Feb-2017 03:11 20558 perl-Locale-PO-0.27-6.fc26.noarch ...

  3. Java线上应用故障之CPU占用高排查与定位

    最近线上频繁报警CPU空闲不足,故紧急排查后分享给大家 1.使用top命令,获取占用CPU最高的进程号 2.查看线程号对应的进程信息 命令:ps -ef|grep 22630 3.查看进程对应的线程信 ...

  4. 关于Hazard Pointers的话题

    关于Hazard Pointers的话题, 起源于这个文章: 实现无锁的栈与队列(4) http://www.cnblogs.com/catch/p/3176636.html 其实他的系列文章(3)之 ...

  5. [How to] MapReduce on HBase ----- 简单二级索引的实现

    1.简介 MapReduce计算框架是二代hadoop的YARN一部分,能够提供大数据量的平行批处理.MR只提供了基本的计算方法,之所以能够使用在不用的数据格式上包括HBase表上是因为特定格式上的数 ...

  6. UAF漏洞学习

    产生原因: UAF漏洞的成因是一块堆内存被释放了之后又被使用.又被使用指的是:指针存在(悬垂指针被引用).这个引用的结果是不可预测的,因为不知道会发生什么.由于大多数的堆内存其实都是C++对象,所以利 ...

  7. Python全栈开发之11、进程和线程

    一.线程 多任务可以由多进程完成,也可以由一个进程内的多线程完成,一个进程内的所有线程,共享同一块内存python中创建线程比较简单,导入threading模块,下面来看一下代码中如何创建多线程. d ...

  8. javax.persistence.EntityNotFoundException: Unable to find报错

    这类错id 可能是10,可能是27,也可能是其他数字 错误描述: javax.persistence.EntityNotFoundException: Unable to find 某个类 with ...

  9. 【笔试题】Java 中如何递归显示一个目录下面的所有目录和文件?

    笔试题 Java 中如何递归显示一个目录下面的所有目录和文件? import java.io.File; public class Test { private static void showDir ...

  10. Typora ---一款简洁的Markdown编辑器

    Typora BB in front 如果你是一个佛(lan)系(duo),内心文艺的程序员,并且你对其他Markdown编辑器的使用效果感觉不是很好的话,可以来了解一下该软件Typora. What ...