作者averywu (看文不要只會用橫的看)
看板Ajax
標題[問題] 等待上個工作完成
時間Wed Mar 30 03:46:56 2011
一直以來都有個問題,但總想拐彎過改流程來逃避。
但總覺得一定有法子處理的。
我問題是某一元素綁定事件後,當事件觸發的程式碼部份未完成時(AJAX),怎麼讓
下面的等它完成再執行?
例:
$("
#mycombobox").bind('change',function(){
$.get('myquery.php',{
id : x
},function(data){
if(data!="false"){
$("#mydiv").html(data);
}
}
var tid = "#"+x;
$(tid).attr('selected',true);
})
黃色那段是不會有作用的,我知道尚未出現的元素綁定事件是用live(),但
尚未出現的元素賦值就很頭大,有沒有什麼方式讓黃色那行可以等$.get完成後
再執行呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.142.152
1F:推 nightspirit:get 不是有complete的callback可以叫嗎? 03/30 04:17
2F:推 knuckles:黃色就寫在$("#mydiv").html(data);下一行就好啦 03/30 06:36
我問題沒描述清楚,實事上,黃色那行所要加入selected屬性的元件,正是
由該事件中$.get回來的,所以$.get還沒完成時,程式依然會進行到黃色那行,
然後就什麼事都不會發生。因為那個HTML元素還在$.get中,或剛GET回來。
我想問的是類似如此的情況,是否有什麼方式請JQuery或javascript等一下。
例: $.somefunction().finish(Do something...) 之類的做法。
※ 編輯: averywu 來自: 59.124.142.152 (03/30 07:46)
3F:推 linhomeyeu:1F 03/30 12:41
4F:→ grence:我覺得 1.2樓的推文就是答案了 @@a 03/30 21:18
5F:→ linhomeyeu:所以我推 1F XD 03/31 00:29
6F:→ averywu:可是我接在下行沒效耶... 03/31 03:17