2016-03-08 3 views
2

Здравствуйте, ребята, я могу просто передать объект другой функции jquery, как показано ниже?JQuery как передать объект другой функции

$('#course_id').on('change', function(e){ 
    var cour_id = e.target.value; 

    $.get('/ajax-classification?cour_id=' + cour_id, function(data){ 

     console.log(data); 
     $('#classification_id').empty(); 
     $('#classification_id').append('<option value="">--Select Classification--</option>'); 
     $.each(data, function(index, classificationObj){ 
      $('#classification_id').append('<option value="'+ 
       classificationObj.classification_id+'">'+ 
       classificationObj.classification_name+'</option>'); 
     }); 
    }); 

    //Here i want this function can get back the classificationObj. 
    $('#classification_id').on('change', function(e){ 
     var cour_id = "1"; 
     var classi_id = e.target.value; 
     $.get('/ajax-classification-index?classi_id=' + classi_id +'&cour_id='+ cour_id, function(data1){ 
      console.log(data1); 
      $('#classification_index').empty(); 
      $('#classification_index').append('<option value="">--Select Index--</option>'); 
      $.each(data1, function(index, classificationIndexObj){ 
       $('#classification_index').append('<option value="">'+ 
        classificationIndexObj.classification_index+'</option>'); 
      }); 
     }); 
    }); 
}); 

Что мне делать? Как изменить первую или вторую функцию JQuery?

+1

Вы должны использовать переменный, сфера находится вне этих двух функций. – Barmar

+0

Что произойдет, если пользователь изменит второй элемент до того, как он изменит первый элемент? – Barmar

+0

Спасибо за ваш быстрый ответ, сэр! Я обновил свой код. Объект получен с другой страницы. На самом деле эта часть кода похожа на выпадающий список, зависящий от трех уровней. Есть Course-Classificaiton-Classification_index. –

ответ

1

Используйте .data(), чтобы сохранить объект с каждой опцией.

$.each(data, function(index, classificationObj){ 
     $('#classification_id').append($("<option>", { 
      value: classificationObj.classification_id, 
      text: classificationObj.classification_name, 
      data: { object: classificationOBj } 
     })); 
    }); 

Затем в обработчике #classification_id изменения вы можете использовать:

var classificationObj = $(this).find("option:selected").data("object"); 
+0

БОГ НРАВИТСЯ !! Ты обалденный! –

Смежные вопросы