2012-01-22 12 views
1

現在、レベルのメニューが右側にあり、代わりにコンテンツエリアに存在する必要があります。私はどのようにajaxロードされたコンテンツ内のクリックイベントを持っているのか分からない自分のコンテンツdivの別のレベルをロードします。私が働いているテーコードはここにある:ajaxでロードされたコンテンツ内のリンクを持つ別のページをajaxでロードします。

var $level = $('#navigation a'),// Links on the right 
    last = null;// Last Level 

$level.click(function(){ 
    if(last != this){ // let's avoid needless requests 
     var url = 'html/' + this.hash.slice(1) + '.html'; 
     $('#content').html('<p class="loading">Loading...</p>').load(url, function(){ 
      this.scrollLeft = 0;//scroll back to the left 
     }); 
    } 
    last = this; 
    this.blur(); // Remove the awful outline 
    return false; 
}); 

$level.eq(0).click(); // Load the first Level 

最終目標は、そのレベル内を移動する、または別のものをロードするために、ユーザーコンテンツ領域内の画像をタップすることができるように(それはアヤックスがロードされています)を持つことですレベル(.htmlページ)。私は何を避けるためにしようとしていることは5以上

私のテスト環境があるだろうと、スクリプト内のすべてのレベルのすべてのインスタンスを宣言する必要があるここにある:http://www.beingproperties.com/test/jscroll-ajax/

任意の助けいただければ幸いです。ありがとう! -Chris

+0

イベントを作成するにはライブ( 'click'、function(e){あなたのコード})のような、ライブを使わなければならないajaxによって読み込まれた仕事。 –

+0

それでは、上記のコードをどのように書き直すのでしょうか。私はこの情報をここ(http://beski.wordpress.com/2010/11/01/jquery-ajax-link-inside-ajax-loaded-content-problem/)で読んだことがありますが、それを書く方法は不明です各ページの負荷を定義する必要はありません。 – Centinel3

答えて

0

ライブバインディングを使用するには、コードを直接バインディングからクリックイベントに変更する必要があります。これに代えて

:あなたはこの使用すべき

$level.click(function() { 

:あなたはjQueryのを使用している場合

$level.live('click', function() { 

を1.7以上、正しい構文は次のようになります。

$('#navigation').on('click', 'a', function() { 
+0

は絶対に完璧です。 –

関連する問題