Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 mobile中特定页面的绑定pageinit_Jquery_Jquery Mobile - Fatal编程技术网

jquery mobile中特定页面的绑定pageinit

jquery mobile中特定页面的绑定pageinit,jquery,jquery-mobile,Jquery,Jquery Mobile,我在JQuery移动应用程序中有两个页面,第一个页面链接到第二个页面。我在第二个页面上有一个表单,它根据php脚本中的信息动态加载一些html,并且我希望在加载该页面的所有内容后,将事件处理程序附加到一些动态添加的元素。我相信这有助于使用pageinit,因为一旦第二个页面的ajax调用完成,就会调用pageinit。但是如何仅对单个页面执行此操作,因为我不想为每个pageinit事件加载脚本,因为它将引用尚未创建的元素 我有点像: $('#page_two').bind("pageinit",

我在JQuery移动应用程序中有两个页面,第一个页面链接到第二个页面。我在第二个页面上有一个表单,它根据php脚本中的信息动态加载一些html,并且我希望在加载该页面的所有内容后,将事件处理程序附加到一些动态添加的元素。我相信这有助于使用pageinit,因为一旦第二个页面的ajax调用完成,就会调用pageinit。但是如何仅对单个页面执行此操作,因为我不想为每个pageinit事件加载脚本,因为它将引用尚未创建的元素

我有点像:

$('#page_two').bind("pageinit",function(){//some code});

但是,这不会执行函数体中的代码。我试着改用.live,但它确实按照我想要的方式工作,但我读到JQuery中不推荐使用它。有没有办法只为JQuery Mobile中的特定页面加载javascript?另外,如果有人能解释为什么.bind不起作用,但是.live起作用,那就太好了。谢谢你的帮助。

如果我迟到了,很抱歉,但我是这样做的:

$( document ).delegate(".yourpageclass", "pageshow", function() {
alert ("Ciao!");
});

我希望它能对某些人有所帮助。

bind with.on(,也就是说pageinit是您想要使用的事件,它们很少在页面加载的不同时间启动。..bind()不起作用,因为它只绑定到当时存在的元素。当您进行绑定时,#page_two还不在DOM中,因此它对..live()和.on()没有任何影响允许您绑定到与选择器匹配的DOM元素,无论它们在绑定时是否存在。出于某种原因,如果我使用.on(),事件仍然不会触发。导致.live和.on工作方式不同的原因是什么?@Romain类似于$(document).on('click','#page_two',function(){..})比在选择器中使用id更好吗?实际上.on()可以表现为live()或bind(€),具体取决于您如何使用它。您应该看看这篇优秀的文章