jQueryでドはまり
ローカル環境でjQueryのload関数を使って後から読み込んだhtml内の要素に対して
bindでイベントを設定することはできるが
$(document).ready(function() { jQuery('.hoge').bind('mouseover', { targetHtml:'hoge.html' },click_link ); }); function click_link(e) { $("#main_contents").load(e.data.targetHtml); }
サーバ上に置いたものでは、読み込んだhtmlの要素に対してイベントを設定することができなかった。
いろいろ調べた結果、bindを使わずliveを使うと読み込み後の要素に対してもイベントを設定することができる。
古いドキュメントではbindとliveの引数は違うが、新しいjQueryでは引数が同じになっているので安心。
$(document).ready(function() { jQuery('.hoge').live('mouseover', { targetHtml:'hoge.html' },click_link ); }); function click_link(e) { $("#main_contents").load(e.data.targetHtml); }