当我使用.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
答案 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');
}
});
});
一旦我们知道您使用的代码肯定会起作用,但仍然没有任何反应,您需要按以下顺序检查以下内容:
jsTouch.loadPage()
无效。