0

当我使用 .click 事件时,我可以调用该方法。
在职的

$("#signin").live('click',function(){
    jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
});

当我使用 jQuery.post 时,它无法加载该方法。
失败的

$("#signin").live('click',function(){       
$.post("http://localhost/myAPI/index.php/api/requestlogin", { username: "admin", password: "test" },
function(data) {
        if(data.response == 'success')
            {                   
            jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
                     }else{
                        alert(data.response);               
                          }
});
});

控制台错误类型错误 :无法调用未定义的方法“loadPage”

这是 jstouch 库。 https://github.com/vitmalina/Web-2.0-Touch/blob/master/includes/jsTouch.js

4

1 回答 1

1

首先.live()是贬值。改用.on()http ://api.jquery.com/on/

好的,所以我用我使用的 AJAX 函数重写了你的代码。$.POST 是,是的,$.ajax 的简写,但还是试试看吧 :)


$("body").on('click', '#signin', function(){       
    $.ajax({
        url: "http://localhost/myAPI/index.php/api/requestlogin",
        type: 'POST',
        data: {username: "admin", password: "test"},
        success: function(response) 
        {           
            jsTouch.loadPage('pages/tabs.html', { transition: 'pop-in' });
        },
        error: function(response)
        {
            alert('error');
        }
    });
});

一旦我们知道您使用的代码肯定可以正常工作,但仍然没有任何反应,您需要按以下顺序检查以下内容:

  • 点击确实在注册,所以在点击之后发出警报。
  • POST 确实正在通过,所以在成功函数中添加一个警报。
  • 如果仍然没有任何反应,那是你jsTouch.loadPage()的不工作。
于 2013-01-18T10:14:50.510 回答