Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.live()未在文档内部工作就绪_Jquery_Jquery Mobile - Fatal编程技术网

jQuery.live()未在文档内部工作就绪

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'

在将站点上的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 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
事件处理程序以特定页面为目标:
$(文档)