jQuery.live()未在文档内部工作就绪
在将站点上的jquery mobile从v1.0b1版本更新到现在的1.2.0版本之前,这项工作:jQuery.live()未在文档内部工作就绪,jquery,jquery-mobile,Jquery,Jquery Mobile,在将站点上的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'
$(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 ready内部工作?在jquery mobile上,应该将$(document.ready()
替换为$(document.bind('pageinit')
重要提示:使用$(document.bind('pageinit'),而不是$(document.ready())
在jQuery中学习的第一件事是调用$(document).ready()
函数中的代码,以便在加载DOM后立即执行所有操作。但是,在jquerymobile中,Ajax用于在导航时将每个页面的内容加载到DOM中,而DOM就绪处理程序只对第一个页面执行。要在加载和创建新页面时执行代码,可以绑定到pageinit
事件。本页底部详细解释了此事件
有关更多详细信息,请参阅jquery mobile上的$(document.ready()
应替换为$(document.bind('pageinit')
重要提示:使用$(document.bind('pageinit'),而不是$(document.ready())
在jQuery中学习的第一件事是调用$(document).ready()
函数中的代码,以便在加载DOM后立即执行所有操作。但是,在jquerymobile中,Ajax用于在导航时将每个页面的内容加载到DOM中,而DOM就绪处理程序只对第一个页面执行。要在加载和创建新页面时执行代码,可以绑定到pageinit
事件。本页底部详细解释了此事件
有关更多详细信息,请参阅如果有可能,您是否在动态创建元素?决不能在jQuery Mobile中使用$(document).ready()。api文档中详细记录了这一事实。此外,将事件绑定到文档的.live内部也没有意义。ready,文档不必准备将元素绑定到文档本身。您使用的是什么版本的jquery?@insomiac jquery-1.8.1.min.js您是否在动态创建元素?您不应该使用$(document).ready()使用jquerymobile。api文档中详细记录了这一事实。此外,将事件绑定到文档的.live内部也没有意义。就绪,文档不必准备将元素绑定到文档本身。您使用的jquery版本是什么?@insomiac jquery-1.8.1.min.js
$(文档)。绑定('pageinit')
与$(文档).ready()不同。不同之处在于,前者会为每一个初始化的伪页面触发,而对于一个大型网站来说,这可能是数十次。后者将在每次页面加载时触发一次,前者将在每次伪页面加载时触发一次(在同一DOM中发生多次)。请记住这一点,您可能需要使用pageinit
事件处理程序以特定页面为目标:$(文档)代码>$(document).bind('pageinit')
与$(document.ready()
不同。不同之处在于,前者会为每一个初始化的伪页面触发,而对于一个大型网站来说,这可能是数十次。后者将在每次页面加载时触发一次,前者将在每次伪页面加载时触发一次(在同一DOM中发生多次)。请记住这一点,您可能需要使用pageinit
事件处理程序以特定页面为目标:$(文档)代码>