jQuery Mobile - 绑定到pageinit事件

10

我正在尝试理解以下jQuery Mobile的示例。

$( '#aboutPage' ).live( 'pageinit',function(event){
  alert( 'This page was just enhanced by jQuery Mobile!' );
});

在这个上下文中,#aboutPage是什么?pageinit绑定到了什么对象?
1个回答

13

aboutPage应该是页面的ID。(即带有 data-role="page" 的 div)。live()将您定义的包含 alert 的函数附加到 aboutPagepageinit 事件上。pageinit 在页面初始化时触发。

简而言之,您的代码所做的是

aboutPage 初始化时执行 alert 语句

即使不在视图中,页面可能已经初始化。因此,在进入该页面之前,div 的 pageinit 就会被触发。如果您正在加载另一个 HTML 文件作为新页面,则只有在将该页面加载到视图中时,该页面的 pageinit 才会被触发。因此,在您的情况下,如果您想在 div 进入视图时执行某些操作,可以尝试使用 pagebeforeshowpageshow。在动画开始之前,pagebeforeshow 将在新页面上触发,而在动画结束后会触发 pageshow


是的。这就是我猜想的,我尝试在具有data-role="page"的div上连接pageinit事件,但由于某种原因,第一次转到页面时该方法不会被调用。当我点击刷新时,该方法被调用。 - dev.e.loper
编辑了答案以解释这个问题。希望能有所帮助。 - user700284
3
搞定了。每个页面都有自己的JavaScript来连接“pageshow”事件。然而,我正在使用$.mobile.changePage,它仅加载具有data-role = page的div,该页面上的其他所有内容(包括内联JavaScript)都不会执行。这是帮助我的答案:https://dev59.com/fGs05IYBdhLWcg3wGuKd#7449731 - dev.e.loper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接