Javascript jQuery Mobile—直接加载URL,然后通过散列加载相同的URL,生成新的数据角色=";第页“;DOM中的div
这个问题可能有点难以理解,因此我将更详细地解释: 假设我在一个网站上有一个移动站点,该站点的根是 如果加载此页面时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是不明确的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
在检查生成的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'];?>">