jQuery Mobile-pageinit和pagecreate只触发一次

jQuery Mobile-pageinit和pagecreate只触发一次,jquery,jquery-mobile,Jquery,Jquery Mobile,我正在进行我的第一个jQuery移动项目,遇到了一个障碍。我使用的是1.0版,到目前为止,这个项目非常简单,索引上只有三页脚本。我错误地使用了$(document).ready(function(){…})首先,然后阅读文档,正确的做法是绑定pageinit或pagecreate。以下是我正在使用的用于测试目的的脚本(直接来自文档): 我已经尝试将其作为外部JS文件和#mainDIV中的脚本,正如我在这里找到的一些旧线程中所建议的那样。当第一次加载索引时,这种方法可以工作,但是当用户导航到另一个

我正在进行我的第一个jQuery移动项目,遇到了一个障碍。我使用的是1.0版,到目前为止,这个项目非常简单,索引上只有三页脚本。我错误地使用了
$(document).ready(function(){…})
首先,然后阅读文档,正确的做法是绑定
pageinit
pagecreate
。以下是我正在使用的用于测试目的的脚本(直接来自文档):

我已经尝试将其作为外部JS文件和
#main
DIV中的脚本,正如我在这里找到的一些旧线程中所建议的那样。当第一次加载索引时,这种方法可以工作,但是当用户导航到另一个页面然后返回(重新访问)时,它不会再次触发


我遗漏了什么?

pageinit仅在首次加载页面时触发。 索引页永远不会卸载(即使您在别处导航),因此它永远不会再次触发该事件


请尝试pagechange事件,该事件会在页面发生更改时触发。

pageshow
将在每次显示页面时触发,无论是在初始页面加载时,还是在用户导航离开后再导航回该页面时

下面是一个使用
pageshow
在页面的每个视图上运行代码的示例:(请注意,此代码在关闭
标记之前运行,并且未封装在
$(document.ready(function(){…});
函数)中


这里有一个jQuery Mobile事件的文档链接(清楚地解释了每个事件的触发时间):(大约在页面的一半开始页面事件)。

我个人只使用pageinit事件将事件处理程序分配给UI(实际创建时只发生一次),和pagebeforeshow以更新UI-即刷新数据、更新时间等…用户每次切换到该页面时(通过.changepage()或链接或浏览器重新加载)都会调用后一个事件.

你试过pageinit吗?是的,试过pageinit和pagecreate。对不起,我复制和粘贴的代码是我最新尝试的pagecreate。编辑你测试的浏览器是什么?Firefox和Chrome。greath回答,如果我有,很高兴包括我提供的fiddle+1000
$("#main").live('pageinit', function(event) {
        alert( 'This page was just enhanced by jQuery Mobile!' );
});