Не выполняется функция, если ранее выполнена другая
Имеется динамические select'ы (#p_cat select#p_subcat select,#p_material select)
После загрузки страницы все 3 select'а видны и выбрано необходимое значение. При изменении первого селекта новое значение отправляется обработчику, и на основании этого значения из базы достаются новые значения для 2го селекта, очищаются элементы со 2м и 3м селектом, а затем вставляется новый 2й. При изменении 2го селекта, первый не трогается, удаляется 3й и заменяется на новый. Вот скрипт: $(document).ready(function(){ $("#p_cat select").change(function(){ $.ajax({ url: "/admin/dyn_select.php?cat="+$("#p_cat select").val()+"&id="+$("#id").val(), cache: false, success: function(html){ $('#p_subcat').empty(); $('#p_material').empty(); $("#p_subcat").html(html); } }); }); $("#p_subcat select").change(function(){ $.ajax({ url: "/admin/dyn_select.php?subcat="+$("#p_subcat select").val()+"&id="+$("#id").val(), cache: false, success: function(html){ $('#p_material').empty(); $("#p_material").html(html); } }); }); }); Но напоролся на проблему: если изменить сначала 1й селект, а затем 2й, то функция $("#p_subcat select").change(function(){} не выполняется, если в обратном порядке, то все работает. Что не так сделал? Заранее спасибо за ответы PS: поменял функции местами - не выполняется все та же функция $("#p_subcat select").change(function(){}. Почему-то скрипт не работает на сгенерированный функцией $("#p_cat select").change(function(){} селект |
http://api.jquery.com/empty/
Цитата:
|
Спасибо, разобрался)
$(document).ready(function(){ $("#p_subcat select").change(function(){ $.ajax({ url: "/admin/dyn_select.php?subcat="+$("#p_subcat select").val()+"&id="+$("#id").val(), cache: false, success: function(html){ $('#p_material option').detach(); $("#p_material select").html(html); } }); }); $("#p_cat select").change(function(){ $.ajax({ url: "/admin/dyn_select.php?cat="+$("#p_cat select").val()+"&id="+$("#id").val(), cache: false, success: function(html){ $('#p_subcat option').detach(); $('#p_material option').detach(); $("#p_subcat select").html(html); } }); }); }); Сейчас все работает |
Часовой пояс GMT +3, время: 13:07. |