Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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
Javascript jQuery Mobile—直接加载URL,然后通过散列加载相同的URL,生成新的数据角色=";第页“;DOM中的div_Javascript_Jquery Mobile - Fatal编程技术网

Javascript jQuery Mobile—直接加载URL,然后通过散列加载相同的URL,生成新的数据角色=";第页“;DOM中的div

Javascript jQuery Mobile—直接加载URL,然后通过散列加载相同的URL,生成新的数据角色=";第页“;DOM中的div,javascript,jquery-mobile,Javascript,Jquery Mobile,这个问题可能有点难以理解,因此我将更详细地解释: 假设我在一个网站上有一个移动站点,该站点的根是 如果加载此页面时URL中没有任何哈希,则会在DOM中得到一个带有data role=“page”的div。如果我单击指向另一个页面的链接,这可能会将我带到URL,我会得到该页面的另一个data role=“page”链接插入到div中。这一切都是正确的 但是,如果我随后跟随此页面上的链接返回主页(而不是返回按钮)并获取URL,那么jQuery Mobile将不会重用第一次加载页面时的相同数据role

这个问题可能有点难以理解,因此我将更详细地解释:

假设我在一个网站上有一个移动站点,该站点的根是

如果加载此页面时URL中没有任何哈希,则会在DOM中得到一个带有data role=“page”的div。如果我单击指向另一个页面的链接,这可能会将我带到URL,我会得到该页面的另一个data role=“page”链接插入到div中。这一切都是正确的

但是,如果我随后跟随此页面上的链接返回主页(而不是返回按钮)并获取URL,那么jQuery Mobile将不会重用第一次加载页面时的相同数据role=“page”div,而是将新的数据role=“page”div插入DOM

这会导致任何绑定到针对主页中特定ID的“pagecreate”事件的JavaScript都无法工作,因为ID是不明确的


在检查生成的HTML时,我注意到,直接加载的data role=“page”div(不是通过hash Ajax加载)有一个与该div的id相等的数据url属性,但当它通过hash加载时,则数据url等于hash值。我想知道这种不一致是否是问题的原因?

jQuery Mobile使用数据url进行内部链接。它通常会自己填充这些容器,并使用散列链接更改目标数据role=“page”容器。我建议任何生成的页面都由服务器预先填充数据url(即,对用户登录的第一个页面执行jQuery的工作-如果他们登录到主页,则使用主页信息填充数据url字段,等等)

例如:

<div data-role="page" id="home-page" data-url="<?php echo $_SERVER['REQUEST_URI'];?>">