什么是HTML文档触发的第一个事件?

时间:2013-03-31 22:57:40

标签: javascript jquery html jquery-mobile

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

奇怪的是,我得到的第一个控制台输出是pagebeforecreate然后是document ready,然后是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");
};

2 个答案:

答案 0 :(得分:7)

您正在寻找的是jQuery移动事件模型生命周期的全面可视化,下图可在Pro jQuery Mobileon the author's blog中找到:

jQuery Mobile Events Diagram - Brad Broulik

请记住,这是特定于jQuery的移动设备。原生事件列表可用as part of the W3 spec,唯一与文档生命周期相关的事件是旧的load

答案 1 :(得分:4)

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

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

如果您阅读有关此问题的jQuery Mobile文档,则表示在实例化任何“小部件”之前调用pagebeforecreate。那就是那个问题;你放在那里的所有内容都将被称为“之前”所有jQuery Mobile小部件,但本身并不是在HTML页面上触发的第一个事件。

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

  • 未初始化(尚未开始加载)
  • loading(正在加载)
  • interactive(已加载足够,用户可以与之交互)
  • 完成(满载)