裏アドだらけの人生

読んでおもしろい内容はほとんどない個人的な備忘録です

jQueryのloadでセレクタ指定した時のscript

2013-06-18 15:30:33 | jQuery
検証不足だけどとりあえずメモ。
例えば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時間悩んだ結果、たぶんそういうことなんだろなって結論に達した次第。
ちゃんと調べてないんで間違ってたらすみません。