Изменить события на динамически добавленных выборках с помощью плагина Chosen
Я использую плагин Chosen на своем сайте, и до сих пор он работал отлично. Тем не менее, я нахожусь в ситуации, когда я добавил выбор динамически и активировал плагин Chosen на этих выборках. Эти выбранные селекторы производятся нормально, но я не могу понять, как связать событие нажатия с элементом. Выбрал предлагает это ($("#form_field").chosen().change( … );
) как способ сделать что-то для события change, однако это не работает, так как мой выбор был добавлен динамически.
я пытался $('#el').change
а также $(document).on("change", "#el", function())
а также без какого-либо успеха.
2 ответа
Оригинальный ответ: от http://harvesthq.github.io/chosen/
"Если вам нужно обновить параметры в выбранном вами поле и вы хотите, чтобы Chosen принял изменения, вам нужно вызвать событие" selected: updated "на поле. Chosen восстановит себя на основе обновленного содержимого. "
$("#form_field").trigger("chosen:updated");
... так что просто позвоните после добавления нового элемента.
Изменить: После просмотра этого http://jsfiddle.net/amindunited/reh5p0tg/3/ я вижу, что проблема заключалась в том, что прослушиватель change() для второго выбора был присоединен до того, как этот выбор был добавлен на страницу. Я обновил код скрипки для работы:
РЕДАКТИРОВАТЬ
Еще один способ заставить это работать - поместить все в функцию init:
function init_new_content(){
$("#form_field").chosen();
}
init_new_content();
И затем вызывайте его всякий раз, когда вы знаете, что внесли изменения (например, в ajax)
$.ajax({...},
success: function( data){
init_new_content();
},
...