jQuery .live()无法在文档内部工作

时间:2012-10-12 20:08:25

标签: jquery jquery-mobile

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

$(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内部工作?

1 个答案:

答案 0 :(得分:1)

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

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

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

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