在jQuery Mobile中做$(document).ready的正确方法是什么?

假设我想在jQuery Mobile完成渲染UI后运行一些代码。 mobileinit事件不起作用,因为它之前被提升。 快速谷歌搜索似乎表明仅使用$(document).ready将无法与JQM一起使用; 但我只是尝试了它(在mobileinit之后调用)它对我mobileinit :我的代码运行并动态更新元素等等就好了。 所以我想知道,是否有一些原因我应该使用它(它不可靠或混淆JQM),或者那里有关于它的信息根本不准确? 我错过了什么?

更新 :请参阅此处进行演示。

很可能是你读到$(document).ready无法与jQuery Mobile一起工作的原因是每次查看伪页面时它都不会触发。 也就是说,它仍然会在加载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”。

因此,如果用户点击远离主屏幕,然后点击后退按钮返回主屏幕,则“页面显示”将在第二(以及随后)“显示”主屏幕时触发。

此外,“pageshow”要求用户导航到其绑定的页面。