11

我很好奇使用 jQuery 和 jQuery Mobile 时首先触发哪个事件。

奇怪的是,我得到的第一个控制台输出是pagebeforecreatethendocument ready和 then onload

我想知道在这些事件之前是否有任何其他事件被触发。

http://jsfiddle.net/yYGYe/2/

$('html').bind('pagebeforecreate',function(event) {
    console.log("pagebeforecreate");
});

$(document).ready(function() {
    console.log("document ready");
});

window.onload = function(){
    console.log("onload");
};
4

2 回答 2

7

您正在寻找的是 jQuery 移动事件模型生命周期的全面可视化,下图可在Pro jQuery Mobile作者的博客中找到:

jQuery Mobile 事件图 - Brad Broulik

请记住,这是 jQuery mobile 特定的。本机事件列表作为 W3 规范的一部分提供,唯一与文档生命周期相关的是旧的load

于 2013-04-01T01:02:52.383 回答
4

你的问题和你问的实际问题有点不同。

您询问第一个触发的事件是什么,但在上下文中您询问是否pagebeforecreate是要调用的函数,如果您希望它成为页面上触发的第一个事件。

如果您阅读有关该问题的 jQuery Mobile 文档,它会说pagebeforecreate在任何“小部件”实例化之前调用它。所以在这件事上;您放入其中的所有内容都将被称为“之前”所有 jQuery Mobile 小部件,但本身并不是 HTML 页面上触发的第一个事件。

在 HTML 页面上触发的第一个事件可能document.readyState设置为uninitialized,表示您的页面尚未准备好加载。这些都是就绪状态;

  • 未初始化(尚未开始加载)
  • 加载(正在加载)
  • 交互(已加载足够,用户可以与之交互)
  • 完成(满载)
于 2013-03-31T23:11:10.907 回答