使用jQuery Mobile $ .mobile.changePage()(不更改页面)在天堂中遇到麻烦

时间:2013-01-30 16:25:20

标签: jquery jquery-mobile event-handling

我有一个简单的登录表单。 2个php文件,mobile.login.phpmobile.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>

我尝试了很多东西。正如您所看到的,我有两个选项来更改代码中的页面,其中一个被注释掉了。被注释掉的那个,没有任何反应。活动代码会将网址更改为mobile.home.php,但只会再次slides up登录表单。 mobile.login.phpmobile.home.php都有页面div id's

我似乎无法弄明白这一点,任何想法?

1 个答案:

答案 0 :(得分:1)

这应该是你的问题:

$.mobile.changePage('mobile.home.php', 'slide', false, true);
e.preventDefault();

此处不要使用 e.preventDefault(); ,否则会阻止成功转换。

以下是一个简单示例:http://jsfiddle.net/WWfEq/

评论/取消注释 e.preventDefault(); 以查看差异。