• 締切済み

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を使用したい場合には、 どのようにすればよいのでしょうか?

みんなの回答

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.4

#2,#3がよくわからないなら読み込んだ後に、くっつける処理再実行するだけでは?

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.3

ごめんなさい、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)
回答No.2

最上位につけておけば、読み込まれた要素にも有効ですよ。 //@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 );

noname#94983
noname#94983
回答No.1

おそらくは、ロードのタイミングの問題じゃないかと思う。ロード済みになった段階で組み込みをすれば、問題はないような気がする。 ただ、どのタイミングで、ロードが完全に完了したと判断できるのかがちょっとよくわからない部分はある。例えばだが、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の組み込みがされるようになると思う。ややスマートさにかける感じはあるが。

関連するQ&A