• ベストアンサー

callbackってなんですか。

初歩的な質問で申し訳ありません。 jQuery日本語リファレンスをみていて疑問に思ったのですが、 fadeOut([speed], [callback]) "callback"とはどういうことですか? 上記例でいうと、フェードアウトさせた後の動きをどうするかという ことでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

fadeOut([speed], [callback]) 各要素の透明度を操作して、表示されている要素をフェードアウトさせます。 ~ 中略 ~ また、効果が完了した際に呼び出される関数を第二引数に指定することも出来ます。 なので、 function fadeOutFinish() { alert("終わり!"); } みたいに関数を作って fadeOut([speed], fadeOutFinish) と2番目の引数に指定すると、 fadeOut 関数が、フェードアウト処理を終えた後に fadeOutFinish 関数をコールしてくれます 関数側が、特定のタイミングでコールして情報を返してくれるので、 コールバック(関数)といわれます

webama_fk
質問者

お礼

お返事遅くなり申し訳ありません。 解説ありがとうございます。とてもわかりやすい内容でした。 ありがとうございました。

その他の回答 (2)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

処理が非同期で行われるときに 処理が終わったことを通知してもらうための関数です

webama_fk
質問者

お礼

お返事が遅くなり大変申し訳ありません。 解説ありがとうございます。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

コールバックというのは、 JavaScriptに限らない一般的なプログラミング用語で 「引数として渡される関数」のことです。 ごく単純な例はこんな感じでしょうか。 function funcA(x) { alert("funcA:"+x); } function funcB(x) { alert("funcB:"+x); } function funcC(callback) { callback("funcC"); } funcC(funcA); funcC(funcB); これによって、呼び出した関数(例ではfuncC、質問文ではfadeOut)内で行う処理の内容を 呼び出し側である程度制御できるようになります。 あと、jQuery日本語リファレンスを見てみましたが、 「また、効果が完了した際に呼び出される関数を第二引数に指定することも出来ます。」 と記載されていたので、callbackという言葉の意味が分からなくてもちゃんと読めば理解はできると思いますよ。 コールバック (情報工学) - Wikipedia http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%AB%E3%83%90%E3%83%83%E3%82%AF_(%E6%83%85%E5%A0%B1%E5%B7%A5%E5%AD%A6)

webama_fk
質問者

お礼

お返事が遅くなり申し訳ありません。 解説ありがとうございます。 まだプログラム等の経験が浅いので、解説頂いている例がちょっと難しかったです。 せっかく教えて頂いたのに理解が悪く申し訳ありませんでした。

関連するQ&A

  • jqueryで順番に実行する方法

    jqueryについて教えてください。 画像を順番に表示するにはどうすればよいのでしょうか? 下記のようにやるとすべての画像が同時にフェードイン、フェードアウトします。 setInterval(function() { $("#i1").fadeIn(3000).fadeOut(3000); $("#i2").fadeIn(3000).fadeOut(3000); $("#i3").fadeIn(3000).fadeOut(3000); $("#i4").fadeIn(3000).fadeOut(3000); $("#i5").fadeIn(3000).fadeOut(3000); }, 6000); 同時にではなく、順番(1を表示した後に2というように)に表示するにはどうすればよいのでしょうか?

  • jQueryのコードのことで質問があります

    現在jQueryを学習するため「仕事の現場でサッと使える!デザイン教科書jQuery」を使用して勉強しています。 しかし次のような書き方がたびたびでてきており理解できず、こまっています。 (例)テキストティッカーの中の一部 //スライドアウト function slideOut(selector){ selector.stop().animate({ ~~~省略~~~ }); 例えばこういう書き方だとskideOutの部分は関数なのでしょうか? jQuery日本語リファレンスで調べても乗っておらず質問しました。 ちなみにこのコードの前にvarなどで格納している記述はありません。

  • jQuery1.3.2を使用しています。

    jQuery1.3.2を使用しています。 animateについてです。 animate(params, [duration], [easing], [callback]) となっていますが、各パラメータに指定できる値がわかりません。 たとえばparamsには {width:120px}などのスタイルを書くことが出来ますがbackgroundなどの指定はできるのでしょうか? また、そのような詳細なリファレンスを掲載しているサイトはありませんでしょうか? (出来れば日本語で・・・) 現在やりたいのはテーブル内で、マウスオーバーした行をアニメーションで背景を変化させるような事をしたいと思ってます。

  • jQuery & 下記のスクリプトにて画像のフェードイン・アウトで切り

    jQuery & 下記のスクリプトにて画像のフェードイン・アウトで切り替えるスクリプトについてご質問です。 http://medienfreunde.com/lab/innerfade/ html のロード時に数枚の切り替え予定の画像がスクリプトが 読み込まれる前に全部表示されてしまって格好が悪いので、 表示させないようにする為には、どうすればよろしいでしょうか? 特に上記のスクリプトを用いなくても代替えのスクリプトがあれば、そちらでも構いません。

  • mp3DirectCut1.36を使ってmp3を結合したい

    いろいろ調べてこのバージョンだと結合も出来ると知り、ダウンロードしました。 カットやフェードアウトなどは出来たのですが、いまだに別のmp3と結合する方法がわかりません。 詳しいかた、初心者ですので、よろしくお願いします。 (日本語化はしております)

  • jqueryでtoggleを無制限に繰り返したい

    下記のhtmlテキストのjquery記載部分について質問させていただきます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>toggle繰り返し</title> </head> <body> <p>toggle繰り返し</p> <div id="box" style="width:150px;height:150px;background:blue;"> </div> <script src="http://code.jquery.com/jquery-1.10.1.min.js"> </script> <script> $(function() { $('#box').toggle(1000); $('#box').toggle(1000); $('#box').toggle(1000); $('#box').toggle(1000); $('#box').fadeOut(1000, function() { }); }); </script> </body> </html> 上記のhtmlの上から14行目~17行目に記載してあるにあるscript部分に、 $('#box').toggle(1000); を4回記載しているため、 4回、繰り返しフェードアウトが実行されています。 DreamWeaverCS6で作成し、ブラウザIE10、firefox24.0で動作確認しています。 ここで質問ですが、この回数を無制限に、つまり永久に繰り返すようにするには、どのようにすればよいのでしょうか?具体的なコードを記載していただけると助かります。 詳しい方がいましたら、よろしくお願いします。

  • 音楽を重ねたりカットしたりできるフリーソフトを教えてください!

    CDの音楽ファイルの(1)曲の一部分を取り出したり,(2)フェードアウトして自分の声を入れたり(パソコンにピンマイクを差し込んで),(3)曲を重ねたりできるフリーソフトを探しています。できれば,簡単な操作(音楽ファイルのまま編集が可能であれば)で日本語対応のものが見つかればうれしいです。今のところ上記の3点の機能しか用途を考えていません。よろしくお願いします。

  • jQueryについて教えてください

    jQueryというJSがあるのは誰もがご存知だと思います。 私も名前や少しだけ使ったことがありますが、いまいち漠然として分かりません。 初歩的な質問で申し訳ないのですが、 極論から言うとjQueryでいったいどの位の表現?機能を使うことができるのですか? 本も買ってみたり、ネットでも調べると何かしらjQueryを使ったプログラムはありますが、それが全てではないと思いますし、むしろ極一部だと思います。 jQueryを使うと、どんな事を、どうやったら、何ができる? って事がどうして皆さん分かるのでしょうか? 例えば何かイメージしてる動きがあって、それはネットで調べれば近い情報は出てくると思います。 しかし、jQueryである必要も無ければ、jQueryの方が楽な場合もあると思います。 だけどjQueryだとなぜ楽に作れるのか、それが理解できなくて困っています。 JavaScriptの知識はかじる程度しかないですが、 jQueryを理解するにはjQueryのソースを理解しないと、何ができるかは判断できないのでしょうか? また、「jQueryでできることの一覧」みたいなサイトってありますか? あと、jQueryで使えるライブラリの意味がいまいち分かりませんが、 これはjQueryを理解してる人が、使いやすいように作った別のJSファイルって認識で良いのでしょうか? どうも根本的な事を理解しきれてなくて、教えていただきたく。

  • このjQueryの意味を説明してください。

    jQuery の初心者です。 あるサイトからjQueryでクロスフェードさせる内容のものを 参考にしているのですが、セレクタなどの個々の意味が いまひとつ理解出来ません。 調べて自分なりの解釈を書きましたが、訂正などがありましたら ご説明頂ければと思います。 ■html <div class="box"> <img src="1.png" width="600" height="200" alt="" /> <img src="2.png" width="600" height="200" alt="" /> <img src="3.png" width="600" height="200" alt="" /> </div> ■css .box{ position:relative; height:300px; width:400px; } .box img{ position:absolute; left:0; top:0; } ■js $(function(){ $('.box img:gt(0)').hide(); //0より大きい数字のimgをhideする setInterval(function(){ $('.box :first-child') //.box内の一番目 .fadeOut(1500) //1.5秒かけてフェードアウト .next('img') //次のimgを .fadeIn() //フェードイン .end() //終わったら?? .appendTo('.box'); //.boxに追加?? },4000); //4秒間隔で繰り返す });

  • 複数の画像をフェードイン・アウトでランダム表示したい。 出来れば、画像がカブらない様にしたい。

    始めまして、初歩的な質問で申し訳ないのですが、よろしくお願いします。 『9枚の画像(サイズはすべて同じ)を4箇所(2×2)でフェードイン・フェードアウト、する様な形で表示させたい。』 (1) 複数の画像をランダムで表示させる事は以下のリンク等で確認出来ました。 http://logue.apricotte.net/2006/04/03-192500.php (2) フェードイン・アウトは=<a http://iswebmag.hp.infoseek.co.jp/142/sample02.htmlこちらを参考に出来ました。 ※1箇所のみで出来ました! 2箇所以上だと、ダメです。 (1)だけだとフェード効果を得られません。 (2)は1箇所配置だけど動作しますが2箇所以上に配置だと動作しません。 (3)出来れば(1)のように画像を配置したい箇所に記述出来るソースがあれば幸いです。 以上、聞き苦しい点があると思いますが、よろしくお願いします。