У меня есть раскрывающийся список select2, для которого я предоставляю функцию сопряжения. Он инициализируется так на начальной загрузке страницы:Инициализация select2 создана динамически
jQuery(document).ready(function() {
jQuery(".my_select2").select2({
matcher: function(term, text) {...}
});
});
Это работает на начальной загрузке страницы.
Теперь у меня есть дополнительные раскрывающиеся меню (select
элементы, созданные динамически (вытянут в с помощью AJAX, то есть jQuery(match).load(url)
. Эти дополнительные выпадающие списки не получают intialised, как ВЫБ.2 виджетов, что понятно, даже если они соответствуют исходной ВЫБ.2 селектор.
Итак, как я могу сказать jQuery для обработки этих динамически созданных элементов select
как select2 элементов, которые необходимо инициализировать? Могу ли я установить какой-то «вахту» на соответствующие элементы, так что инициализация select2 запускается каждый раз на страницу добавлен соответствующий элемент?
Я помню live()
b eing, введенный в jQuery некоторое время назад, который поддерживал соответствующие элементы до их создания, если я правильно понял. Я никогда не использовал эту функцию, и теперь она выглядит устаревшей. Но это похоже на то, что я ищу.
Это для плагина WordPress, который в настоящее время использует jQuery v1.11.2.
Вы можете посмотреть https://github.com/uzairfarooq/arrive – SSA
Это подразумевает, что jQuery не может наблюдать за создаваемыми предметами, без помощника. Или был создан 'came.js', чтобы упростить работу, когда jQuery не используется вообще? – Jason
Если вы не можете запустить select2 после добавления элемента выбора в DOM, вы должны использовать наблюдателя dom mutation, как первый комментарий –