検証不足だけどとりあえずメモ。
例えばloadで読み込むHTMLに
セレクタを指定せずにファイルまるごとloadした時はhogehoge()が実行される(と思う)。
しかしどうもこれがセレクタを指定してHTMLの一部をloadした場合には無視されるっぽい。
#contentの中にscriptが書いてあっても実行されない。
で、とりあえず回避策。
ちゃんと調べてないんで間違ってたらすみません。
例えばloadで読み込むHTMLに
<script type="text/javascript" src="hogehoge.js"></script> <script type="text/javascript"> $(function() { hogehoge(); }); </script>みたいなの(hogehoge.js内でhogehoge関数を定義)が書いてあったとして、
セレクタを指定せずにファイルまるごとloadした時はhogehoge()が実行される(と思う)。
しかしどうもこれがセレクタを指定してHTMLの一部をloadした場合には無視されるっぽい。
$('#container').load('hogehoge.html #content');こんな感じのやつ。
#contentの中にscriptが書いてあっても実行されない。
で、とりあえず回避策。
$('#container').load('hogehoge.html #content', function() { $.getScript('hogehoge.js', function() { hogehoge(); }); });たまたまload先の一部のファイルだけscriptが実行されなくて、どうしてだろうって小1時間悩んだ結果、たぶんそういうことなんだろなって結論に達した次第。
ちゃんと調べてないんで間違ってたらすみません。