jQuery live() и измените

#jquery #select #live #onchange

#jquery #выберите #ЖИВЫЕ КОНЦЕРТЫ #при изменении

Вопрос:

У меня дилемма — создал таблицу строк, которые содержат текстовое поле, выпадающее меню и зависимый 3-й файл / выбор.

Также есть кнопка «Добавить новый», которая добавляет новую строку со значениями по умолчанию, размещенными внутри этих 3 элементов формы.

Вот скрипт, который изменяет элемент третьего столбца в зависимости от значения, выбранного в предыдущем меню выбора:

 if ($('.navigation_type').length > 0) {
    $('.navigation_type').live('change', function() {
        var next_cell = $(this).parent('td').next();
        var identity = $(this).attr('id').split('_');
        var type = $(this).val();
        var url = '/pages/c/navigation/a/fetch/id/'   identity[1]   '/type/'   type;
        $.getJSON(url, function(data) {
            if (!data.error) {
                next_cell.html(data.content);
            }
        });         
    });
}
  

И скрипт «Добавить новую кнопку» выглядит следующим образом:

 if ($('.add_navigation').length > 0) {
    $('.add_navigation').click(function() {
        var master = $(this).attr('id').split('_');
        master = master[1];         
        $.getJSON('/pages/c/navigation/a/newrow/master/'   master, function(data) {
            $('#section_'   master).after(data.row);
        });
        return false;
    });
}
  

Кнопка ‘.add_navigation’ работает нормально до того момента, пока я не изменю значение в выпадающем списке — это ничего не делает, то есть третий столбец не меняется в зависимости от выбранного значения.

Я использовал метод live (‘изменить’), поскольку думал, что это должно решить проблему, но, очевидно, я делаю что-то неправильно — есть идеи, что это?

Комментарии:

1. Я думаю, что вам не нужен оператор if вокруг вашего обработчика событий.

2. Боюсь, что без инструкции ‘if’ это тоже не сработает

Ответ №1:

Хорошо — проблема решена — это был другой код, который вызывал проблему! Приведенный выше сценарий работает нормально.