我正在开发我的第一个jQuery Mobile项目并遇到了障碍。我使用的是1.0版,到目前为止,该项目非常简单,只有索引上有三个脚本。我最初错误地使用了$(document).ready(function() { ... });
,然后在文档中读到正确的操作是绑定pageinit
或pagecreate
。这是我正在进行测试的脚本(直接从文档中获取):
$("#main").live('pageinit', function(event) {
alert( 'This page was just enhanced by jQuery Mobile!' );
});
我已经尝试过这个作为外部JS文件和#main
DIV中的脚本,正如我在这里找到的一些旧线程中所建议的那样。这在第一次加载索引时有效,但是当用户导航到另一个页面然后返回(重新访问)时,它不会再次触发。
我错过了什么?
答案 0 :(得分:20)
pageshow
都会触发,无论是在初始页面加载时还是在用户导航后,然后导航回该页面。
以下是使用pageshow
在页面的每个视图上运行代码的示例:http://jsfiddle.net/jasper/DHeva/(请注意,此代码正在关闭</body>
标记之前运行,而不是封装在$(document.ready(function () {...});
函数中。
以下是jQuery Mobile Events的文档链接(清楚地解释了每个事件的触发时间):http://jquerymobile.com/demos/1.0/docs/api/events.html(大约在页面的一半处开始 page 事件)。< / p>
答案 1 :(得分:2)
我个人仅使用pageinit事件将事件处理程序分配给UI(实际创建时只发生一次),并且pagebeforeshow更新UI - 即刷新数据,更新时间等....后一个事件将被称为EVERYTIME,用户切换到该页面(通过.changepage()或链接或浏览器重新加载)。
答案 2 :(得分:0)
pageinit仅在首次加载页面时触发。 索引页面永远不会被卸载(即使你在其他地方导航),所以它永远不会触发该事件。
尝试更改页面时触发的页面切换事件。