Я предполагаю, что вы на самом деле используете несколько вариантов выбора.Если это так, просто привяжите обработчик к элементу select
вместо:
$(".generalTemplate").click(function() {
var su = $(this).find(':selected').text();
$("#sub").val(su);
});
. Он находит выбранный элемент при нажатии и не требует привязки к отдельным элементам option
после того, как они 'вставлен.
Если вы не используете кратное число, вам нужно привязать к событию change
.
$(".generalTemplate").change(function() {
var selected = $(this).find(':selected');
if( selected.index() > 0 ) {
var su = selected.text();
$("#sub").val(su);
}
});
В конечном итоге, произошло то, что асинхронный AJAX-вызов выполнял свою функцию обратного вызова после вы запустили код для привязки обработчиков.
Другими словами, код не ждетответ AJAX, поступающий до его выполнения.Связываясь с самим select
, вы знаете, что он уже доступен в документе, поэтому проблем с синхронизацией нет.