jQuery Mobile:页面事件触发的顺序是啥?
Posted
技术标签:
【中文标题】jQuery Mobile:页面事件触发的顺序是啥?【英文标题】:jQuery Mobile : What is the order of page events triggering?jQuery Mobile:页面事件触发的顺序是什么? 【发布时间】:2012-12-10 05:08:42 【问题描述】:我必须为应用程序快速构建原型,我想知道在哪里插入各种应用程序逻辑。
您能否在使用 PhoneGap 和 jQueryMobile 时迭代事件及其触发顺序?
如果能清楚地了解以下事件/顺序,那就太好了:
答:当您第一次打开应用程序时。 B:当你换页时(我猜有些事件不会发生 不再)。 C:当您“最小化”应用程序时(例如:当您单击应用程序中的链接时 这会带您发送短信/通话,或者您只需按下设备的主页按钮)。 D:当您恢复应用时(例如:点击“返回”按钮,或者只是 以某种方式“最大化”它)。【问题讨论】:
【参考方案1】:简介
在这里找到的所有信息也可以在我的博客ARTICLE 中找到,您还可以找到工作示例。
- A:初始化
A1 - 使用 deviceReady 事件初始化 Phonegap 应用程序/框架。
例子:
document.addEventListener("deviceReady", yourCallbackFunction, false);
function deviceReady()
更多关于暂停甚至可以在这里找到:http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html
A2 - 使用 mobileinit 事件初始化 jQuery Mobile 应用程序/框架。
例子:
$(document).on("mobileinit", function ()
);
如何检查两个框架是否加载成功:https://***.com/a/12821151/1848600
- B:换页
首先可以在这里找到所有事件:http://jquerymobile.com/test/docs/api/events.html
假设我们有一个页面 A 和一个页面 B,这是一个卸载/加载顺序:
1. page B - event pagebeforecreate
2. page B - event pagecreate
3. page B - event pageinit
4. page A - event pagebeforehide
5. page B - event pagebeforeshow
6. page A - event pageremove
7. page A - event pagehide
8. page B - event pageshow
- C:最小化应用程序
Phonegap 通过 pause 事件来处理这个问题。
例子:
document.addEventListener("pause", yourCallbackFunction, false);
更多关于暂停甚至可以在这里找到:http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html
- D:恢复应用
Phonegap 使用 resume 事件处理此问题。
例子:
document.addEventListener("resume", yourCallbackFunction, false);
更多关于暂停甚至可以在这里找到:http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html
- 最后的话
还有一些其他的 phonegap 和 jQM 事件,您可以在上面提到的链接中找到它们。
你不应该在 jQM 应用程序中使用的东西:
$(document).ready(function()
);
原因:
在 jQuery 中学习的第一件事是在 $(document).ready() 函数,所以一切都会在 DOM 已加载。然而,在 jQuery Mobile 中,Ajax 用于加载 导航时将每个页面的内容放入 DOM,并且 DOM 准备就绪 处理程序仅对第一页执行。每当一个 新页面加载并创建后,您可以绑定到 pageinit 事件。 此事件在本页底部有详细说明。
【讨论】:
谢谢你,Gajotres!这很全面。 没问题m8,我很乐意帮忙:)以上是关于jQuery Mobile:页面事件触发的顺序是啥?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Mobile 页面加载事件委托 javascript 触发两次
Jquery Mobile:“pageshow”事件仅在 Shift F5(完全重新加载)时触发,但在加载另一个页面或具有不同查询的同一页面时不会触发