2012-03-05 14 views
0

私はAJAXでロードされたコンテンツを持っており、ロードされたDOM要素のイベントに使用する変数の値を知る必要があります。jqueryの新しいDOM要素でajaxをロードした後に変数を取得する

これは私のコードです:

var course_select = $(this).closest('div[id^=course-]').attr('id'); 
// get the course id 
var course_id = course_select.split('-')[1]; // get the number 
$.ajax({ 
     type: 'POST', 
     url: 'main/ajaxjson/load_course_details', 
     data: {page : which, course_id: course_id}, 
     success: function(home){ 

      $('#ajax-content-' + course_id).hide(); 
      $('#ajax-content-' + course_id).empty().append(home); 
      $('#ajax-content-' + course_id).fadeIn(); 
})` 

私は新しいロードされたコンテンツを取得し、その後、私はこのようなイベントバインド:私は新しいとそれにアクセスするために利用できるようにCourse_IDに変数が必要 $('body').on('click',param_here, function_here(){});

を要素。

+0

返される要素のクラス名にコースIDを入れないのはなぜですか?それはそれらを選択することは非常に簡単です。 –

+0

クラス名はどういう意味ですか? – Mythriel

+0

答えて

1

.ajax()の前に変数を定義し、成功メソッドで設定することができます。
しかし、実行時には、ajaxが完全に完了したかどうか、またはより具体的には、いつあなたのvar courseIdが設定されているかわかりません。

$(body).on('courseIdUpdate',function(){ 
    alert("My course Id has been updated"); 
    //run additional code that needs the updated courseId 
}); 

それは次のとおりです。
だから、あなたが何ができるか、あなたの変数の値を変更し、そう$(body).trigger('courseIdUpdate');
などのカスタムイベントをトリガそして、あなたがしなければならないだろうすべてはそのイベントなどに耳を傾けです単純な作業のために多くの作業をしますが、多分あなたはこれを考慮する必要があります。

+0

+1これは本当に私にも同様の問題を解決するのに役立ちました、ありがとう! – igrossiter

+0

あなたを歓迎します;-) –

関連する問題