jQuery Fancyboxでbindイベントもモーダルする方法
jQuery Fancyboxでbindイベントもモーダルする方法

jQueryでappend()やhtml()で追加や変更された要素に対して、さらにclickイベントを入れたい場合はclick()では発動しないですよね、javascriptで追加された要素に対してさらにイベントを入れてあげるにはon()イベントを使って上げますね。
1.9以前ではliveイベントがありましたが、以降は廃止され、onイベントを使います。詳しくはこちら
jQuery Fancyboxでもbindしたいよー!
appendやhtmlなど、追加・変更した要素に対してもFancyboxプラグインでモーダル表示させたいなーと思っていたら、同じようなこと試されている方がいらっしゃいました。
$(document).on('click', 'a.fancybox', function() {
$.fancybox(this);
});
こうすれば最低限のモーダルは動くことが分かりましたが、Fancyboxはオプションが超たくさんあるんですね。
例えば、Fancyboxでモーダルの表示が完了した時に何か処理を入れる
$(".js-modal").fancybox({
onComplete: function() {
alert('hoge');
}
});
onイベントで、このモーダルの表示が完了したらどうするのかが分かりませんでしたが、公式サイトを見たり、試行錯誤で出来ました!
$(document).on('click', '.js-modal', function () {
$.fancybox({
'href' : this.href,
'onComplete' : function() {
alert('hoge');
}
});
return false;
});
});
これでOK!最終的には公式サイトで解決!最初からドキュメント読めやってことですね。hrefにはthis.hrefというのもポイントですね。