Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   не могу повторно запустить selectbox jquery (https://javascript.ru/forum/dom-window/51768-ne-mogu-povtorno-zapustit-selectbox-jquery.html)

imedia 18.11.2014 20:33

не могу повторно запустить 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, время: 21:58.