• 締切済み

Ajaxで書き換えた要素内でLightbox

Ajaxの勉強がてらいろいろ試しています。 そこで、質問なのですが、 例えば、<div id="xxx"></div>の中をAjax.Updaterで <a href="image_l.jpg" rel="lightbox[roadtrip]" title="image"> <img src="image_s.jpg" alt="image"> </a> と書き換えた場合、lightboxの機能が使えません。 とりあえず、Lightboxはinitializeでいろいろやってるために、Ajaxで後から追加した要素には適用されない、ということは判りました。 Ajaxで後から追加した要素内で行いたい場合、IFRAMEを使うしか方法はないのでしょうか? よろしくお願いします。

みんなの回答

  • smwithdm
  • ベストアンサー率46% (23/49)
回答No.1

自分もAJAXの勉強がてら色々と勉強しながら同じ問題に突き当たりましたが、<div id="xxx">~</div>の中身を他のHTML(web page)に書き換えるときは注意が必要です。 asxさんの考えるようにAJAXで追加した要素にはCSSとJSは追加されません。 したがって、参考URLに記載した方法では可能ですが、動かないスクリプトも在りますのでIFRAMEでやるのが手っ取り早いです。でも、その場合はHTML 4.01形式でなくてはならず、XHTML1.xはだめです。 ちなみにasxさんが必要としているところは参考URL内のスクリプトのloadobjs()のところです。 ちなみに、私はAjax.Updaterは使ったことは無いです。

参考URL:
http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm
asx
質問者

お礼

ありがとうございます。 また少しいじっていたのですが、 > AJAXで追加した要素にはCSSとJSは追加されません。 というのは一概には言えないみたいなのですが…。 少なくともCSSは普通に反映されてますし、JSもprototype.jsは使えているようです。 smwithdmさんに教えていただいたloadobjs()を試してみたのですが、画面が固まってしまいました。 これは使える!と思ったのに残念です。 でもどこかで使えそうなのでしっかりメモっておきます! ありがとうございました。

関連するQ&A