[問題] function參數的傳遞

看板Ajax作者 (光⊙﹏⊙)時間14年前 (2011/09/16 20:11), 編輯推噓6(607)
留言13則, 5人參與, 最新討論串1/2 (看更多)
我的程式碼如下 <script> function aa(xx,yy){ /*直接做完沒有回傳值*/ } function bb(callback){ /*這裡有個使用.get取得資料的function 參考版上寫法如下*/ $.getJSON("http://x.x.x.x/scantable.php?callback=?", function(msg){ callback(msg); }); } function cc(){ /*這裡需要使用bb()取得之資料*/ } aa(xx,yy); bb(function(result){ alert(result);//有顯示資料 可是我也不知道該存去哪裡= = }); cc(); </script> 試了很多種方法 也試過直接用return 但是bb()裡面的資料一直傳不出來外面 主要是因為.getJson裡面的那個function讓我不知道值要傳到哪裡去QQ 麻煩各位大大了Orz -- ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄ ▄▄ ▄▄▄▄▄▄▄ ▄ ▄ ▄▄▄ ▄▄ くっくっくっ.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.109.100.195

09/16 20:28, , 1F
直接把cc帶進去不行嗎? bb(cc(result));
09/16 20:28, 1F

09/16 20:52, , 2F
是可以 但是cc()做完後後面還有函式會用bb()的結果
09/16 20:52, 2F

09/16 20:53, , 3F
bb()算是去挖一個 整段程式都會用到的資料庫資料@@
09/16 20:53, 3F

09/16 20:57, , 4F
我覺得很多aa bb cc會讓人稿不懂你要做什麼,而無法給你更
09/16 20:57, 4F

09/16 20:58, , 5F
好的建議。稿不懂你的須求可以被另一種簡單的方式解決@@
09/16 20:58, 5F

09/16 20:58, , 6F
09/16 20:58, 6F
好的 那我附上我的原始程式碼@@ body onload之後呼叫initialize()開始產生google map function initialize() { var myLatlng = new google.maps.LatLng(12,123); var myOptions = { zoom: 8, center: myLatLng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions); creatMaker(myLatlng,map);//呼叫creatMaker 沒問題 getData(function(result) {//呼叫getData取得資料 準備給後面的function使用 alert(result[1]['longitude']); }); creatInfowindow();//這裡需要用到上面getData取得的資料 showTxt();//諸如此類會繼續用到getData取得的資料 } function getData(callback){ $.getJSON("http://x.x.x.x/scantable.php?callback=?",function(msg){ callback(msg); }); } ※ 編輯: timmy852111 來自: 123.240.5.156 (09/16 21:16)

09/16 21:08, , 7F
我的想法是在bb中var一個變數k 然後$.getJSON( ... , func
09/16 21:08, 7F

09/16 21:09, , 8F
tion(msg){ k=callback(msg); }); return k;
09/16 21:09, 8F
好的我去試試看@@ ※ 編輯: timmy852111 來自: 123.240.5.156 (09/16 21:18)

09/16 22:40, , 9F
bb 執行到 $.getJSON 之後不會等結果回來就會繼續執行下一行
09/16 22:40, 9F

09/16 22:40, , 10F
所以 cc 一直沒資料很正常。
09/16 22:40, 10F

09/16 22:43, , 11F
然後等資料回來的時候才會執行帶進 bb 的 callback。
09/16 22:43, 11F

09/16 23:04, , 12F
所以呢,只要是需要依賴 getJSON 所取資料的 function
09/16 23:04, 12F

09/16 23:04, , 13F
都要延遲執行
09/16 23:04, 13F
文章代碼(AID): #1ESppU0D (Ajax)
文章代碼(AID): #1ESppU0D (Ajax)