Re: [問題] alert( $.ajax )

看板Ajax作者 (鞭策自己社清流夜靈)時間14年前 (2012/02/08 04:51), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串3/4 (看更多)
通常$.ajax這種會有動作要在success做的話我多都會多自帶一個callback function login(callback){ $.ajax({ 參數不寫了以下略, success:function(data){ if(typof(callback) !== "undefined"){ callback.call(this,data); // 會把資料丟給傳進來的callback函式 } } }); } 如此一來login如果要重複用但每次handler不同的話, 就可以這樣寫 login(handler1(data)); login(handler2(data)); 匿名函式也可以 login(function(data){ alert(data); }); 一個重點~ AJAX是asynchronized,所以你的success處理函式是要資料收到才會觸發, 你寫 alert($.ajax({success: function(r){return r}}); 因為alert被call的時候 ajax success根本資料都還沒來所以不會return任何東西, 相反的你若是把alert寫在success function裡,那就是資料到了才去處理那函式, alert這時才有值可以吐阿 觀念若有誤請指正 :) ※ 編輯: nightspirit 來自: 66.122.205.38 (02/08 05:03)

02/08 13:44, , 1F
原po有設async為false
02/08 13:44, 1F

02/08 14:45, , 2F
有了 async=false 只需要success function裡 re=r就好了
02/08 14:45, 2F

02/08 14:46, , 3F
先讓非同步改成同步 也是一個debug的方法
02/08 14:46, 3F
文章代碼(AID): #1FCOxRpm (Ajax)
文章代碼(AID): #1FCOxRpm (Ajax)