jQueryなLightboxライブラリのThickBox... ノウハウ(Tips)  

こんにちは ゲスト さん | ログイン | ヘルプ | okyuu.com Feed Feed

総合トップ / ノウハウ / プログラミング ノウハウ / 開発言語 ノウハウ / JavaScript ノウハウ / jQueryなLightboxライブラリのThickBox...

jQueryなLightboxライブラリのThickBoxをAjaxなコンテンツで使う方法です。


本文
jQueryなLightboxライブラリのThickBoxをAjaxなコンテンツで使う方法です。

Lightbox風の表示をするライブラリは、

The Lightbox Clones Matrix
http://planetozh.com/projects/lightbox-clones/

にあるとおり非常にたくさんありますが、今回jQueryを使っていたページということと、Lightbox内にiframeを表示したかったので、ThickBox 3.1を選びました。

通常、ThickBoxでiframeなページを表示する場合は、

HTMLコードの例
コピペする ブログに貼る
<a href="iframeのURL?KeepThis=true&TB_iframe=true&height=400&width=600" class="thickbox">click!</a>
のようにiframeに表示したいページのURLに、
?KeepThis=true&TB_iframe=true&height=400&width=600
をつけ、
class="thickbox"
と書けばよいのですが、リンククリック時にLightboxとして振る舞う為のイベントハンドラの登録は、ThickBoxのJavaScriptライブラリを読み込んで、ドキュメントがロード完了したタイミングで行われます。 つまり、Ajaxで後からDOMで生成したリンク要素にいくら class="thickbox" をつけても、Lightboxとして働いてくれません。 ちょっと困ったなあと思って、ThickBoxのソースを見てみたところ、シンプルにできそうだったので、実際やってみたらできました。smile 先頭部分を抜粋すると、 thickbox.js
コピペする ブログに貼る
//on page load call tb_init
$(document).ready(function(){   
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
});

//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
	$(domChunk).click(function(){
	var t = this.title || this.name || null;
	var a = this.href || this.alt;
	var g = this.rel || false;
	tb_show(t,a,g);
	this.blur();
	return false;
	});
}
となっており、要は tb_init() 相当のことをリンク要素を生成したタイミングで行ってやれば良さそうです。 そこで、 JavaScriptコードの例
コピペする ブログに貼る
function thickbox(link) {
    var t = link.title || link.name || null;
    var a = link.href || link.alt;
    var g = link.rel || false;
    tb_show(t,a,g);
    link.blur();
    return false;
}
という関数をつくっておいて、 HTMLコードの例
コピペする ブログに貼る
<a href="iframeのURL?KeepThis=true&TB_iframe=true&height=400&width=600" onclick="return thickbox(this);">click!</a>
のように普通に onclick 属性で関数を呼び出すようにしてやればOKでした。kirakira で、その例。 → Google ストリートビューをLightBoxに表示

  • コメント数 (3)
  • クリップ数 (0)
  • アクセス数 (6105)

  • コメント

zyxwvutihgfedcbaと申します。

ThickBox初期化の方法、大変参考になりました。ありがとうございました。m(_ _)m

処で、私事ではありますが、下記URLに関連の質問を上げさせて頂いております。
お時間が許すようであれば、ご指導頂ければ幸いです。

http://okyuu.com/en/question/4067

以上

zyxwvutihgfedcbaと申します。

私の課題は、ThickBoxの問題ではありませんでした。
お騒がせしました。 m(_ _)m

解決されたようでよかったです。

私も深く追求しているわけではないので、お役に立てたか疑問です。。。

0
0
コメント
2
2
コメント
あなたの問題は解決しましたか?

okyuu.comはITエンジニアのための質問サイトです。あなたの質問に答えてくれるエンジニアがいるかもしれません。なんと回答率は89

はじめての方へ

バッヂ取得者一覧
setomits cyokodog edo yuta_3 matoate

カテゴリ

特集

okyuu.comポイント獲得を競って、話題の賞品をゲットしよう! okyuu.comポイント獲得を競って、話題の賞品をゲットしよう!
新しい評価指標「okyuu.comポイント」を多く獲得して、話題の賞品を手に入れよう!
ソフトウェアを公開するのが楽しい 岡野真也さん ソフトウェアを公開するのが楽しい 岡野真也さん
ソフトウェアを公開するのが面白くてたまらない。作っては公開というのが彼のやり方だが、若きエンジニアにとってはそれくらいがちょうどいいのかもしれない。
コンピュータは世界を広げる実験道具 西尾泰和さん コンピュータは世界を広げる実験道具 西尾泰和さん
プログラミング、サイエンス、デザイン マルチな彼にとって、コンピュータは未知の世界を広げるための道具であることに変わりはない。今後の展開が楽しみだ。
理想のOS開発に人生を賭ける 川合秀実さん 理想のOS開発に人生を賭ける 川合秀実さん
OSASK計画代表の川合さんは、人生の1秒を惜しみながら独自OSの開発にいそしむ。
「楽しむ」それが豊かなエンジニアになるコツ 坂井恵さん 「楽しむ」それが豊かなエンジニアになるコツ 坂井恵さん
日本MySQLユーザ会の副代表を務める坂井恵さん。技術の現場で会社運営に興味を持ち、独立起業の道を選んだエンジニアだ。
夢はエンジニアに強い影響を与える本を書くこと 松信嘉範さん 夢はエンジニアに強い影響を与える本を書くこと 松信嘉範さん
ソニーの情報シスから日本を代表するMySQLのコンサルタントに。彼が魅せられたオープンソースの世界とは?
お友達紹介機能をつかってポイントGET! お友達紹介機能をつかってポイントGET!
お友達を招待してみんなでokyuuポイントをGETしよう!
オープンソースの活動「すごく、いい」 前坂徹さん オープンソースの活動「すごく、いい」 前坂徹さん
オープンソースプロジェクトで活躍する若き新鋭。コミュニティ活動の感想を尋ねると「すごく、いい」と満面の笑み。
コンピュータは創造力を刺激する 奥一穂さん コンピュータは創造力を刺激する 奥一穂さん
天才エンジニアとしての国際的な評価も高い奥一穂さん。世間からのスマートだとの評価には「自分は広く浅くだから」とさらり。
25歳からプログラミング「泣きながら覚えた」 庄司嘉織さん 25歳からプログラミング「泣きながら覚えた」 庄司嘉織さん
25歳でプログラマーに転向した。いまやjava-jaを立ち上げるなど精力的なエンジニアだ。
Rails勉強会@東京は“キャスト”の気持ちで 諸橋恭介さん Rails勉強会@東京は“キャスト”の気持ちで 諸橋恭介さん
大学時代、偶然手にしたMacが諸橋さんにITエンジニアの道を開いた。
"シャイモード"機能を活用しよう! "シャイモード"機能を活用しよう!
こんな質問してもいいのかな?そんなときは"シャイモード"で投稿!
RX-7とサーバ運用の意外な共通点 並河祐貴さん RX-7とサーバ運用の意外な共通点 並河祐貴さん
Amazon EC2を巧みに使いこなすTIS/SonicGardenの並河さん。「腕一本で食べていきたい」とITエンジニアを目指した。
「ブラックボックスは不安でしょ」 ひろせまさあきさん 「ブラックボックスは不安でしょ」 ひろせまさあきさん
エンジニアが楽しくて仕方がない。オープンソースを組み合わせてシステムを作り上げるのが彼の矜持のようだ。
Perlの地位向上を胸に 牧大輔さん Perlの地位向上を胸に 牧大輔さん
endeworksの牧大輔さんは社団法人JPAを立ち上げ、Perlの企業利用を促進したいという。
偶然からCTOへ ライブドアCTO池邉智洋さん 偶然からCTOへ ライブドアCTO池邉智洋さん
池邉智洋さんはライブドアCTOの技術メンバーを先頭で率いる。「まずはやって見せることも大事」と語る。