我有两个页面,index.html和testpage.html
testpage.html包含两个页面元素foo和bar,它们之间有链接。
我使用ajax调用从index.html过渡到testpage.html。问题是testpage.html上的链接使用index.html作为基本URL。因此,当我尝试从#foo转到#bar时,我会抓住一个pagechangefail
$( document ).bind( "pagechangefailed", function( event, data ){
alert('failed change ' + data.toPage);
});
此警告“更改失败http://domain.com/mobile/index.html#bar”
问题显然是index.html上不存在#bar,但testpage.html上确实存在#bar。我不明白为什么链接试图链接回原始页面。如何手动设置链接或尝试以某种方式手动覆盖?我试过像
这样的东西$.mobile.changePage('testpage.html#bar');
但没有运气。
答案 0 :(得分:0)
我认为jQM认为这是'深层链接',但我发现这不是你想要实现的目标
请注意:由于我们使用哈希来跟踪所有Ajax“页面”的导航历史记录,因此目前无法深入 链接到jQuery Mobile页面上的锚
(index.html#foo)
, 因为框架会查找ID为#foo
的“页面” 而不是滚动到内容的本机行为 ID。
我认为(但尚未尝试过此操作)您需要先使用$.mobile.loadPage('testpage.html')
将页面加载到DOM中,然后使用$.mobile.changePage('#bar')
进行转换。
更多相关内容:
此外,我已经看到使用 目标属性 ,但不确定这是否可以使用$.mobile.changePage()