- 締切済み
jQueryでloadしたページ内でもjQueryを使う方法
例えば、base.html内にjQueryでadd.htmlをloadします。 base.htmlに下記コードを記述 $(document).ready(function(){ $("a").click(function(){ alert("click"); return false; }); }); base.htmlに直接記述したaタグではアラートが出ますが、 base.htmlに読み込んだadd.html内のaタグでは適用されません。 Ajaxで読み込んだページ内にもjQueryを使用したい場合には、 どのようにすればよいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yuu_x
- ベストアンサー率52% (106/202)
#2,#3がよくわからないなら読み込んだ後に、くっつける処理再実行するだけでは?
- yuu_x
- ベストアンサー率52% (106/202)
ごめんなさい、jQuery でしたね。 jQuery( 'document' ).ready( function( ) { jQuery( 'body' ).click( function( evt ) { if( evt.target.tagName == 'A' ) { alert('click'); return false; } evt = null; } ); } ); # document に click つけれない?
- yuu_x
- ベストアンサー率52% (106/202)
最上位につけておけば、読み込まれた要素にも有効ですよ。 //@cc_on document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'click', function( evt ) { var target = evt./*@if(1) srcElement @else@*/ target /*@end@*/; if( target.tagName == 'A' ) { alert( 'click' ); evt./*@if(1) returnValue = false; @else@*/ preventDefault( ); /*@end@*/ } }, false );
おそらくは、ロードのタイミングの問題じゃないかと思う。ロード済みになった段階で組み込みをすれば、問題はないような気がする。 ただ、どのタイミングで、ロードが完全に完了したと判断できるのかがちょっとよくわからない部分はある。例えばだが、base.html内に、 function dofunc(){ $("a").click(function(){ alert("click"); return false; }); } こんな形で、$("a").click組み込みのための関数を用意しておく。そして、add.htmlの末尾に、 <script type="text/javascript"> dofunc(); </script> こんな具合にdofuncを呼び出し実行する処理を追記しておく。これで、add.htmlがロードされたときにdofuncが呼び出され、$("a").clickの組み込みがされるようになると思う。ややスマートさにかける感じはあるが。