我可以使用pagecontainer更改功能在单击按钮调用的函数内部工作。但由于某些原因,当我在函数外部运行代码时,页面容器更改功能不起作用。我检查用户是否已登录,然后如果他们未登录则想要进行页面更改/重定向。
<script>
//works
function test() {
$(':mobile-pagecontainer').pagecontainer('change', '#event-list-page');
}
//doesn't work
var user = window.localStorage.getItem("user");
if (user == null){
alert('not logged in. Should redirect.');
$(':mobile-pagecontainer').pagecontainer('change', '#event-list-page');
}
</script>
这个问题的最佳解决方案是什么?我应该只进行javascript重定向吗?或者我是否需要等待页面一直加载?
答案 0 :(得分:2)
您应首先启动$.mobile.pageconatiner
示例:
$.mobile.pageContainer.pagecontainer({ defaults: true });
答案 1 :(得分:0)
我认为jQuery mobile必须首先加载整个页面,因为它会预先加载一些页面并执行ajax转换和事情。这不是一个简单的重定向,比如设置window.location。如果你把它放在document.ready块中它就可以了。
$( document ).ready(function() {
$.mobile.pageContainer.pagecontainer('change', '#event-list-page');
});