2013-01-18 35 views
0

當我使用.click事件時,我可以調用該方法。
WORKING在jQuery POST之後調用方法

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

+1

你是什麼意思的「加載方法失敗」?你需要告訴我們到底發生了什麼,你看到了什麼,你在控制檯中得到了什麼錯誤信息等。 –

回答

1

首先,.live()已折舊。改爲使用.on()http://api.jquery.com/on/

好吧,我已經用我使用的AJAX函數重新編寫了代碼。 $ .POST是肯定的,短手$阿賈克斯,但讓這個想試試:)


$("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()不起作用。
+0

這是控制檯日誌。 未捕獲的類型錯誤:無法調用空jsTouch.js的方法 'loadPage':31個 jsTouch.loadPage jsTouch.js:31 $ .ajax.success(程序):12周 b的jquery.js:124 x.onreadystatechange – kedomonzter

+0

然後問題出在你的'jsTouch.loadPage()'上,如果它變得那麼遠。我們不知道這個功能是幹什麼的,所以你需要發佈更多信息。 – Jimbo

+0

我能看到的一點是,你需要確保'pages/tabs.html'存在它應該爲'jsTouch.loadPage()'做正確工作。 – Jimbo