2012-03-05 61 views
0

我有用AJAX加載的內容,我需要知道用於加載的dom元素上的事件的變量的值。在jquery加載後使用jquery中的新dom元素獲取變量

這是我的代碼:

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(); 
})` 

我得到新加載的內容之後,我綁定的事件是這樣的: $('body').on('click',param_here, function_here(){});

我需要COURSE_ID變量可用新進行訪問元素。

+0

爲什麼不把課程ID放在返回元素的類名中?這將使得選擇它們非常容易。 – 2012-03-05 14:41:45

+0

你是什麼意思的類名? – Mythriel 2012-03-05 16:35:44

+0

2012-03-05 16:37:57

回答

1

您可以在.ajax()之前定義一個變量,並將其設置爲您的成功方法。
但是你永遠不會知道在運行時ajax是否已經完全完成,或者更具體的說,你不知道什麼時候設置了var courseId
所以,你可以做的是改變你的變量的值,然後觸發像這樣$(body).trigger('courseIdUpdate');
自定義事件和所有你必須做的是偵聽該事件,如:

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

這是一個有點簡單的任務,但也許你應該考慮這一點。

+0

+1它確實幫助我解決了類似的問題,謝謝! – igrossiter 2014-06-05 00:39:05

+0

不客氣;-) – 2014-06-06 13:26:48