我有一个简单的登录表单。 2 个 php 文件,mobile.login.php
和 mobile.home.php
.您登录,如果设置了cookie,您现在可以访问主页。登录系统工作,但页面不会更改为mobile.home.php
,它只是再次显示登录表单。形式是Ajax,下面是代码:
<script type="text/javascript">
$('#login').live('pageinit', function() {
$('form').live('submit', function(e){
e.stopPropagation();
e.preventDefault();
$.post($(this).attr('action'), $(this).serialize(), function(data){
if(data.success) {
//$.mobile.changePage($('#home'), { transition: 'slideup'});
$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();
} else {
alert('Login failed.');
return false;
}
}, 'json');
});
});
</script>
我尝试了很多东西。如您所见,我有 2 个选项来更改代码中的页面,其中一个被注释掉了。被注释掉的那个,什么也没发生。活动代码将 url 更改为mobile.home.php
,但只需再次slides up
登录表单。mobile.login.php
和mobile.home.php
都有页面div id's
。
我似乎想不通,有什么想法吗?
这应该是你的问题:
$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();
不要使用 e.preventDefault(); 在这里,它会阻止成功转换。
下面是一个简单的示例:http://jsfiddle.net/WWfEq/
Comment/Uncomment e.preventDefault(); 以查看差异。