Всем Доброго!
Прошу помощи или совета в решении вот такой задачи.
Есть Custom Filter Pro - Нужно сделать фильтр, выпадающим списком вниз, критерии выбора всего одна это "тип товара".
Выключил все фильтра (по категориям, производителям и.т.д) оставил только фильтр "по опциям товара"
для каждого типа товара создал группу и туда запихал нужные фильтры именно к этому типу товара.
т.е в списке "тип товара" в моем случае выбираем "клеммники" вылетают вниз фильтры для клеммников,
выбираем "контакторы" вылетают вниз фильтры для контакторов.
Но вот беда, если выбрано "без типа товара" то вниз вылетает и фильтры для клеммников и фильтры для контакторов.
Как пытаюсь решить.
Фильтр "Тип товара" - это список, фильтры для определенного типа товара это чекбоксы.
У списков и чекбоксов разные классы, так построен сам фильтр.
Идея такая удалить все содержимое в дивах у которых присвоен класс для чекбокса ЕСЛИ выбрано или по умолчанию в фильтре "тип товара" = "без типа товара".
Пациент: 40amperТОЧКАruСДЕШabb
Для того чтобы убить все содержание дивов с этими классами при f5 или по умолчанию делаю так:
var x = document.getElementsByClassName("value_text"); // Выводим в div с классом value_text значение value из списка <select> с классом cf_flt - ЭТО ДЛЯ ТЕСТА
x[0].innerHTML = jQuery("select.cf_flt").val();; // Будет выполнятся при загрузки страници, и вернет значение по умолчанию при F5 - ЭТО ДЛЯ ТЕСТА
var y = jQuery("select.cf_flt").val();; // Собственно что и должен делать скрипт, удалить все что в DIV'ах
// C id="#cf_flt_wrapper_custom_f_id_128"
if( y == "Без Тип товаров") { jQuery('#cf_flt_wrapper_custom_f_28_128').remove();
jQuery('#cf_flt_wrapper_custom_f_29_128').remove();
jQuery('#cf_flt_wrapper_custom_f_30_128').remove();
jQuery('#cf_flt_wrapper_custom_f_31_128').remove(); // Как бы покороче то записать?
jQuery('#cf_flt_wrapper_custom_f_41_128').remove(); // Хот от 0 до 100 чтоль
jQuery('#cf_flt_wrapper_custom_f_42_128').remove();
jQuery('#cf_flt_wrapper_custom_f_43_128').remove();
jQuery('#cf_flt_wrapper_custom_f_45_128').remove();
jQuery('#cf_flt_wrapper_custom_f_46_128').remove();
jQuery('#cf_flt_wrapper_custom_f_47_128').remove();
jQuery('#cf_flt_wrapper_custom_f_48_128').remove();
jQuery('#cf_flt_wrapper_custom_f_49_128').remove();
jQuery('#cf_flt_wrapper_custom_f_50_128').remove();
jQuery('#cf_flt_wrapper_custom_f_51_128').remove();
jQuery('#cf_flt_wrapper_custom_f_52_128').remove();
jQuery('#cf_flt_wrapper_custom_f_53_128').remove();
}
Отлично все работает.
т.е зашли на страничку, сразу скрипт скушал все из дивов типа #cf_flt_wrapper_custom_f_N_128
Далее теперь нужно чтобы при выбор в фильтре "тип товара" - контакторы, а затем опять "без типа товара" все отработало так же как и выше но без всяких F5
Пишу:
// Все что ниже почему-то работает только один раз после перезагрузки страници, а нужно что бы работало при каждом выборе
// Выводит в тестовую временную переменную, отображается над фильтром!
jQuery("select.cf_flt").change(function() { // Должно выполняться если изменили выбор в форме <selec> с классом cf_flt.
// (! Но почему-то выполняется только один раз после F5 и все)
// (т.е нажали F5 если "без типа товара" то отработает скрипты выше, делаем выбор, смотрим
// (тестовую переменную - ок отработал отдал value, делаем еще раз выбор - ТУТ НИ ЧЕГО НЕ ПРОИСХОДИТ!
var x = document.getElementsByClassName("value_text"); // Выводим в div с классом value_text значение value из списка <select> с классом cf_flt
x[0].innerHTML = jQuery("select.cf_flt").val();;
});
Вот не могу понять как натянуть эту шляпу.
Оговорюсь, в js лапух, что сумел то и сварил.
Буду благодарен за любую помощь.
Спасибо!