получение переменной после загрузки ajax с новыми элементами dom в jquery - PullRequest
0 голосов
/ 05 марта 2012

У меня есть содержимое, загруженное с помощью AJAX, и мне нужно знать значение переменной, чтобы использовать ее для событий в загруженных элементах 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 для доступа к ней с новыми элементами.

1 Ответ

1 голос
/ 05 марта 2012

Вы можете определить переменную перед вашим .ajax() и установить ее в своем методе успеха.
Но вы никогда не узнаете во время выполнения, был ли полностью выполнен ajax, или, более конкретно, вы не знаете, когда вашпеременная courseId установлена.
Итак, вы можете изменить значение вашей переменной, а затем вызвать собственное событие, например, $(body).trigger('courseIdUpdate');
И все, что вам нужно сделать, это прослушать это событие, как:

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

Это простая работа для простой задачи, но, возможно, вам следует подумать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...