電子書籍の厳選無料作品が豊富!

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

A 回答 (4件)

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

    • good
    • 0

ごめんなさい、jQuery でしたね。



jQuery( 'document' ).ready( function( ) {
 jQuery( 'body' ).click( function( evt ) {
  if( evt.target.tagName == 'A' ) {
   alert('click');
   return false;
  }
   evt = null;
 } );
} );

# document に click つけれない?
    • good
    • 0

最上位につけておけば、読み込まれた要素にも有効ですよ。



//@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 );
    • good
    • 0

おそらくは、ロードのタイミングの問題じゃないかと思う。

ロード済みになった段階で組み込みをすれば、問題はないような気がする。

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!