作者nightspirit (鞭策自己社清流夜灵)
看板Ajax
标题Re: [问题] alert( $.ajax )
时间Wed Feb 8 04:51:36 2012
通常$.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)
1F:→ nenpow:原po有设async为false 02/08 13:44
2F:→ sk1765:有了 async=false 只需要success function里 re=r就好了 02/08 14:45
3F:→ sk1765:先让非同步改成同步 也是一个debug的方法 02/08 14:46