1

在将网站上的 jquery mobile 从版本:v1.0b1 更新到现在:1.2.0 之前,这有效:

$(document).ready(function() {
   $('.ui-page').live('pageshow', function(e, ui) {
     // do something
   });
});

但是更新后这个就不行了。但这确实:

$(document).ready(function() {

});

$('.ui-page').live('pageshow', function(e, ui) {
   // do something
});

如果我取出代码并将其放在 dom 之外,它就可以工作。有没有办法让它在 dom 内部工作?

4

1 回答 1

1

您应该在 jquery mobile 上替换$(document).ready()为。$(document).bind('pageinit')

重要提示:使用 $(document).bind('pageinit'),而不是 $(document).ready()

在 jQuery 中学习的第一件事是调用$(document).ready()函数内部的代码,以便在加载 DOM 后立即执行所有内容。但是,在 jQuery Mobile 中,Ajax 用于在您导航时将每个页面的内容加载到 DOM 中,并且 DOM 就绪处理程序仅针对第一页执行。要在加载和创建新页面时执行代码,您可以绑定到pageinit事件。此事件在本页底部有详细说明。

有关详细信息,请参阅JQuery Mobile

于 2012-10-12T20:14:44.003 回答