在 jQuery Mobile 中与页面打交道的事件被分为四类:浏览器
当 jQuery Mobile 中的一张典型页面进行初始化时,它会经历三个阶段:app
每一个阶段触发的事件均可用于插入或操做代码。ide
事件 | 描述 |
---|---|
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 事件!") });
页面加载事件属于外部页面。url
不管外部页面什么时候载入 DOM,将触发两个事件。第一个是 pagebeforeload,第二个是 pageload (成功)或 pageloadfailed(失败)。spa
下表中解释了这些事件:code
事件 | 描述 |
---|---|
pagebeforeload | 在任何页面加载请求做出以前触发。 |
pageload | 在页面已成功加载并插入 DOM 后触发。 |
pageloadfailed | 若是页面加载请求失败,则触发该事件。默认地,将显示 "Error Loading Page" 消息。 |
下列演示 pageload 和 pagloadfailed 事件的工做原理:blog
$(document).on("pageload",function(event,data){ alert("触发 pageload 事件!\nURL: " + data.url); }); $(document).on("pageloadfailed",function(event,data){ alert("抱歉,被请求页面不存在。"); });
咱们还能够在从一页过渡到下一页时使用事件。seo
页面过渡涉及两个页面:一张“来”的页面和一张“去”的页面 - 这些过渡使当前活动页面(“来的”页面)到新页面(“去的”页面的改变过程变得更加动感。进程
事件 | 描述 |
---|---|
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 事件。
注释:请经过使用 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 事件处理器 |