JavaScriptでコールバック関数の実装ですが、いろいろなところで書かれているのですがちょっとよくわからなかったので試してみました。
a.html
1 2 3 4 5 6 7 8 9 10 11 12 13 | <html> <body> <script type="text/javascript"> function my_func(callback){ callback("d","e"); } function my_callback(a,b){ alert("a="+a+",b="+b); } </script> <button id="aaa" onclick="my_func(my_callback)">test</button> </body> </html> |
これで
1 | a=d,b=c |
と表示されます。
ここでjQueryを使ってAjaxでデータを取得してみます。
b.txt
1 | test |
これを用意しておきhttpで取得してみます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <html> <head> <script type="text/javascript" src="jquery1.4.2.min.js"></script> <body> <script type="text/javascript"> function my_func(callback){ $.ajax({ url:"http://localhost/b.txt", dataType:"html", success:function(data){ callback(data,"d"); } }) } function my_callback(a,b){ alert("a="+a+",b="+b); } </script> <button id="aaa" onclick="my_func(my_callback)">test</button> </body> </html> |
1 | a=test,b=d |
うまくとれましたが、これでいいのかどうか。