假设我想要在jQuery移动设备完成UI呈现后运行一些代码。mobileinit
事件不起作用,因为它是在这种情况发生之前引发的。在谷歌上快速搜索似乎表明,简单地使用$(document).ready
不能与JQM一起工作;但我只是尝试了一下(根据mobileinit
调用),它对我很有效:我的代码运行并动态更新元素,等等都很好。所以我想知道,是不是有什么原因我不应该使用它(它不可靠或者搞乱了JQM),或者是关于它的信息根本不准确?我遗漏了什么?
更新:有关演示,请参阅here。
发布于 2011-07-29 03:36:48
您读到$(Document) Mobile不能与jQuery .ready一起使用的最可能的原因是,它不会在您每次查看伪页面时触发。也就是说,当加载html文档时,它仍然会像应该的那样触发。
如果您想运行每次查看伪页时都会触发的代码,您可以使用以下代码:
$('[data-role="page"]').live('pageshow', function () {
//run your code here
});
注意:您还可以绑定到其他挂钩(pageshow,pagehide,pagebefoershow,pagebeforehide),文档可以在以下位置找到:http://jquerymobile.com/demos/1.0b1/docs/api/events.html
编辑-
我正在考虑这个问题,最类似于$(document).ready()的方法不是绑定到"pageshow“事件,而是绑定到"pagecreate”事件。$(document).ready()在每次页面加载时触发一次,"pagecreate“对伪页面执行相同的操作,而"pageshow”则在每次显示页面时触发。
因此,如果用户单击离开主屏幕,然后单击back按钮返回到主屏幕,那么"pageshow“将在第二次(以及随后的)主屏幕的”显示“中触发。
此外,"pageshow“要求用户导航到它绑定到的页面。
https://stackoverflow.com/questions/6862939
复制相似问题