页面翻转时是否准备好事件

时间:2012-03-23 12:37:03

标签: javascript jquery html

我正在制作一本书,并使用jQuery来更改页面等 在顶部,我有一个$(document).ready(function(),在页面加载时会执行不同的操作。

在GUI页面上,我得到了一个“更改页面”按钮,当按下该按钮时,将调用函数turnPage()。这个方法包含一些代码:

$.mobile.changePage("#device"+window.device, {
    transition: "slide",
    reverse: false,
    changeHash: true
});

我的问题是,当turnPage()被调用时,$(document).ready(function()也会被调用? (是的,我是新手)

1 个答案:

答案 0 :(得分:4)

DOM ready事件是在DOM完全加载时触发的事件,除了图像(<img>)。

每次页面加载时,事件都会触发一次。所以:

  • 如果turn page()功能进行重定向,则答案为
  • 如果turn page()功能仅获取ajax次请求的数据,则答案为

重要更新: 我在官方插件website中找到了这个:

  

重要提示:使用pageInit(),而不是$(文档).ready()

     

你在jQuery中学到的第一件事就是在$(document).ready()函数中调用代码,这样一旦加载了DOM,一切都会执行。但是,在jQuery Mobile中,Ajax用于在导航时将每个页面的内容加载到DOM中,而DOM ready处理程序仅针对第一个页面执行。要在加载和创建新页面时执行代码,您可以绑定到pageinit事件   ...
  ......

因此turn page会发出ajax请求,因此最终答案为

什么是准备活动:

  

虽然JavaScript在呈现页面时提供了用于执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件。在大多数情况下,只要完全构造DOM层次结构,就可以运行脚本。传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置。使用依赖于CSS样式属性值的脚本时,引用外部函数非常重要。