在jQuery POST之后调用方法

时间:2013-01-18 10:09:27

标签: jquery

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

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

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

$("#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);               
                          }
});
});

CONSOLE ERROR TypeError:无法调用未定义的方法'loadPage'

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

1 个答案:

答案 0 :(得分: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()无效。