JQuery .change () функция, не работающая с динамично заполненным СПИСКОМ ВЫБОРКИ

У меня есть избранное поле, которое динамично заполняется с вызовом ajax, который просто возвращает все опции выбора HTML. Вот часть PHP, что просто эхо избранные теги и динамично заполняет каждую опцию/значение.

echo "";
}  

После того, как этот список заполняется, я пытаюсь назвать событие изменения, так, чтобы каждый раз, когда опция по умолчанию изменяется в СПИСКЕ ВЫБОРКИ или в текстовом поле с тем же классом, это отключило набор переключателя в другой части формы. (Вы видите начальный вопрос, я попросил получать эту часть функциональности, работающей здесь),

$('.affector').change(function(){
       $(this).parents('tr').find('input:radio').attr('disabled', false);
});

По некоторым причинам, даже при том, что я даю избранному полю надлежащее имя класса (исполнительный элемент), когда я выбираю различные варианты в поле, другие части формы не отключают. Поле статического текста с тем же классом хорошо работает. Я озадачен.

Какие-либо идеи?

25
задан Community 23 May 2017 в 12:17
поделиться

3 ответа

Просто прокомментировал свой последний вопрос ... вот что я сказал:

Используйте jQuery Bind

function addSelectChange() {
   $('select').bind('change', function() {
       // yada yada
   });
} 

Вызов AddSelectChange в вашей функции успеха AJAX. Это должно сделать трюк. Посмотрите на событие jQuery Live Tovie (для того, когда вы хотите установить события для всех текущих и будущих элементов DOM в более позднем проекте или что-то). К сожалению, событие изменений и несколько других еще не поддерживаются в Live. Привязка - это следующая лучшая вещь

20
ответ дан 28 November 2019 в 21:25
поделиться

Для элементов, которые динамически вставляются в DOM, их события должны быть связаны с

$('.selector').bind('change',function() { doWork() });

Это потому, что когда вы запускаете $ (function () {}); и привязывайте события с помощью $. click или $. change и т. д., вы привязываете события к элементам , уже существующим в DOM . Любые манипуляции, которые вы делаете после этого, не зависят от того, что происходит в вызове $ (function () {}); . $. Bind указывает вашей странице искать будущие элементы в вашем селекторе, а также текущие.

3
ответ дан 28 November 2019 в 21:25
поделиться

попробуйте .live: http://docs.jquery.com/events/Live

из документов: Связывает обработчик к событию (например, щелчок) для всех текущих и будущих - сопоставленных элементов. Может также связывать пользовательские события.

1
ответ дан 28 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: