Форум русской поддержки Joomla!® CMS
09.12.2016, 06:00:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

J3 как одеть java шляпу на Custom Filter Pro

 (Прочитано 153 раз)
0 Пользователей и 1 Гость смотрят эту тему.
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« : 14.07.2016, 02:25:46 »

Всем Доброго!

Прошу помощи или совета в решении вот такой задачи.
Есть 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 лапух, что сумел то и сварил.

Буду благодарен за любую помощь.

Спасибо!





Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #1 : 14.07.2016, 06:57:01 »

Вопрос решен.
Нашел файл где AJAX грузит фильтр и вставил туда, просто с начало не понял почему отваливается от селектора.
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #2 : 14.07.2016, 07:22:49 »

Нет все же остался

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_32_128').remove();  // Хот от 0 до 100 чтоль

Не дается мне for на java  Grin

Кто научит?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #3 : 14.07.2016, 07:57:15 »

jQuery("[id^='cf_flt_wrapper_custom_f_']").remove();
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #4 : 14.07.2016, 08:23:09 »

jQuery("[id^='cf_flt_wrapper_custom_f_']").remove();

Супер!
Но слишком уж хорошо работает, трет все cf_flt_wrapper_custom_f_ id, а мне бы с 20ки начиная, а то от фильтра кроме названия ни че не осается  Grin

Спасибо!
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #5 : 14.07.2016, 09:37:31 »

for (i = 20; i <= 100; i++) {
  jQuery('#cf_flt_wrapper_custom_f_'+i+'_128').remove();
}

var i = 20;
while (i <= 100) {
  jQuery('#cf_flt_wrapper_custom_f_'+i+'_128').remove();
  i++;
}
от 20 до 100
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #6 : 14.07.2016, 10:45:15 »

О! Спасибо!
Место +i+ ставил .i.  Grin
Надо почитать
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet