【jQuery】jsonファイル読み込み後にプラグインを実行させるには?

投稿者: Anonymous

【jQuery】jsonファイル読み込み後にプラグインを実行させるには?

使用したいプラグイン

▼BookBlock
http://tympanus.net/codrops/2012/09/03/bookblock-a-content-flip-plugin/

やりたいこと

画像のパスが書かれたjsonファイルを読み込み、
このプラグインを適応させる。

できた事

  • jsonの読み込み
  • jsonを読み込まずにプラグインの使用

できない事

  • jsonファイルを読み込んだ後に実行されない。
    ※ devtoolを使用すると、html側にjsonファイルから読み込んだ情報が反映されているのは確認できる。

質問

以下のように組んでみたのですが、うまく動きませんでした。
どなたかアドバイスを頂けると助かります。

$.getJSON("hogehoge.json", function(data){
   ~
}).done(function(){

//ここでプラグインを読み込み

}).done(function(){
//ここでconfig設定
});

解決

プラグインの読み込みを$.getJSON()より前にやらない明確な理由があるのでしょうか?先に読み込みすればたぶん動くと思いますが。
.done()は実行をキューイングするだけなので必ずしも書いた通りにコールバックが呼ばれるとは限りません。また、コールバックの中でプラグインを読み込むと、一時的にそのスレッドは止まって実行はもう一方のスレッド(=ここでconfig設定)、に移ってしまうでしょう。しかし、まだプラグイン読み込まれていないのでたぶん初期化は失敗するでしょう。
プラグインをちゃんと読み込んでからconfigするようにイベントをネストさせる方法もありますが、見た目に美しくないのでメンテしづらいです。
最初にプラグインを読み込んでしまえばいいのではないでしょうか。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *