【问题标题】:jQuery Mobile : What is the order of page events triggering?jQuery Mobile:页面事件触发的顺序是什么?
【发布时间】:2012-12-10 05:08:42
【问题描述】:

我必须为应用程序快速构建原型,我想知道在哪里插入各种应用程序逻辑。

您能否在使用 PhoneGap 和 jQueryMobile 时迭代事件及其触发顺序?

如果能清楚地了解以下事件/顺序,那就太好了:

  • 答:当您第一次打开应用程序时
  • B:当你换页时(我猜有些事件不会发生 不再)。
  • C:当您“最小化”应用程序时(例如:当您单击应用程序中的链接时 这会带您发送短信/通话,或者您只需按下设备的主页按钮)。
  • D:当您恢复应用时(例如:点击“返回”按钮,或者只是
    以某种方式“最大化”它)。

【问题讨论】:

    标签: javascript jquery events jquery-mobile cordova


    【解决方案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://stackoverflow.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,我很乐意帮忙:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    相关资源
    最近更新 更多