не могу повторно запустить selectbox jquery
Здравствуйте я использую плагин очень классный selectbox
при выборе значения аякс отлично отрабатывает и все смежные селекты заполняются соответствующими значении в соответствии с серверными данными, но когда заполнились селекты я повторно не могу обратиться к функции aj() такое впечатление что не инициализирована функция вызова селектбокса, впринципе я так понимаю в конце аякса для этого и используется .selectbox('attach'); Кто может помочь с этим? //запуск плагина который преображает селекты sel_init() function sel_init(){ $(".filter_select").selectbox({ onOpen: function (inst) { //console.log("open", inst); }, onClose: function (inst) { //console.log("close", inst); }, onChange: function (val, inst) {//при изменении селекта запускаем функцию с аяксом select_id=$(this).attr('id'); aj(val,select_id)//передаем в эту функцию два аргумента значение из селекта и его id }, effect: "slide" }); function aj(val,select_id){ var txt, txt1; var select_=$('select'); $.each(select_,function(i,sel_){////опусташаем каждый селект из формы $("#"+sel_.id+"").empty(); }) $.ajax({ type: "POST", dataType: 'json', url: "/functions_filter/form_filter",//адрес обработчика data: {id:val,select_id:select_id}, success: function (data) { var select_name; $.each(data,function(key,select){//определяем айдишники для каждого селекта исходя из полученных аяксом значений switch(key){//то есть куда какая информация пойдет case 'producer': select_name='producer'; break; case 'material': select_name='producer_2'; break; case 'style': select_name='producer_3'; break; case 'color': select_name='producer_4'; break; } $("#"+select_name+"").selectbox('detach');//деактивируем плагин для заполнения селектов новыми значениями $.each(select,function(key_s,value_s){//здесь замутки с полученными значениями из json if(select_name==select_id){//если инфа из data соответствует клацнутому селекту if(value_s.id==val){//активное значение делаем selected $("#"+select_name+"").append('<option selected value="'+value_s.id+'">'+value_s.name+'</option>') } else{//иначе if(key_s!='not'){//тут могут быть значения которым задан спец класс (неактивные) $("#"+select_name+"").append('<option value="'+value_s.id+'">'+value_s.name+'</option>') } else{ $.each(value_s,function(key_n,value_n){ $("#"+select_name+"").append('<option value="'+value_n.id+'">'+value_n.name+'</option>') }) } } } else{ if(key_s!='not'){ $("#"+select_name+"").append('<option value="'+value_s.id+'">'+value_s.name+'</option>') } else{ $.each(value_s,function(key_n,value_n){ $("#"+select_name+"").append('<option class="relative" value="'+value_n.id+'">'+value_n.name+'</option>') }) } } })//вообщем аякс отрабатывает как надо и все супер все значения стают на свои места $("#"+select_name+"").selectbox('attach');//это надо для того чтобы активировать плагин для каждого из селектов }) } }); } } Но проблема в том что если выбрать какое то из полученых значений заново повторно функция aj() не запускается, как инициализировать этот плагин снова? |
Часовой пояс GMT +3, время: 09:49. |