2012-03-07 10 views
0

私のサイトには、外部フレームページと内部コンテンツページがあります。次のようにIその後、ページ内のjsJavery domreadyの問題は、ajax、element.on( 'click'、function)の問題が解決しない

$(document).ready(function() { 
//page load functions 
     $('.menu').click(function(){ 
       $("#innerpage").html(ajax_load).load(loadUrl);  
       $('#innerpage').ajaxComplete(function() { 
          //do some stuff here 
       }); 
     }); 
}); 

:内側のページは次のように私は外側のページのjsを持っている現時点でAJAX呼び出し

を介して変更される

$(document).ready(function() { 
    //page load functions 
      $('.innermenu').click(function(){ 
        $("#innerpageresults").html(ajax_load).load(loadUrl); 
        $('#innerpageresults').ajaxComplete(function() { 
           //do some stuff here 
        }); 
      }); 
    }); 

これをすべての作品は、しかし、理想的には、私はすべてのjavascriptを1つの外部ファイルにしたいと思っていますが、これに問題があります。

私は外側のページに次のコードを使用してこれを解決しようとしていますが、私は内側のページはAJAX呼び出しを介して変更された後、そのが発射されていません原因何か間違ったことをやっている必要があります。

$('.innermenu').on("click", function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 

すべてのヘルプとても有難い。

+0

のイベント委譲の構文を使用してみてください() '](http://api.jquery.com/on)? –

+0

そのほとんどは...たくさんあり、そのほとんどはワッフルのようでした。私は例を踏襲し、最も基本的なものは上記のフォーマットであった – WebweaverD

答えて

2

あなたは試してみてください:

$('body').on("click",'.innermenu', function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 

あなたはクラスinnermenuを持っている要素に対して<body>要素にclickイベントの処理を委任され、このように。 .menuはすべて.innermenu要素をラップ

場合は、より良いTHIを書くことができます:

$('.menu').on("click",'.innermenu', function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 
+0

提案していただきありがとうございます、残念ながら同じ結果を与えています。 Ajaxコールの前で動作しますが、 – WebweaverD

+0

の後では動作しません。ありがとう、私は今作業しています。実際の例は両方とも実際の動作です。私はdoc.ready関数でいくつかの変数を宣言していました。 .on関数内で。 – WebweaverD

+0

@WebweaverD両方とも動作する場合は、2番目のものに固執してください。evntがbody要素ではなく.menu要素だけにDOMをバブルアップさせなければならないので、 –

2

は、あなたが上 `のための[ドキュメントを読みました.on

$("#innerpage").on("click",".innermenu",function(){...}); 
関連する問題