0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 324 Просмотров
*

pavelrer

  • Завсегдатай
  • 412
  • 8
Всем Доброго!

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

  • Завсегдатай
  • 412
  • 8
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #1 : 14.07.2016, 05:57:01 »
Вопрос решен.
Нашел файл где AJAX грузит фильтр и вставил туда, просто с начало не понял почему отваливается от селектора.
*

pavelrer

  • Завсегдатай
  • 412
  • 8
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #2 : 14.07.2016, 06: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  ;D

Кто научит?
*

Wertos

  • Завсегдатай
  • 505
  • 21
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #3 : 14.07.2016, 06:57:15 »
jQuery("[id^='cf_flt_wrapper_custom_f_']").remove();
*

pavelrer

  • Завсегдатай
  • 412
  • 8
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #4 : 14.07.2016, 07:23:09 »
jQuery("[id^='cf_flt_wrapper_custom_f_']").remove();

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

Спасибо!
*

Wertos

  • Завсегдатай
  • 505
  • 21
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #5 : 14.07.2016, 08: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

  • Завсегдатай
  • 412
  • 8
Re: J3 как одеть java шляпу на Custom Filter Pro
« Ответ #6 : 14.07.2016, 09:45:15 »
О! Спасибо!
Место +i+ ставил .i.  ;D
Надо почитать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести Custom Field в шаблоне материала?

Автор Exciter

Ответов: 1
Просмотров: 153
Последний ответ 09.05.2017, 15:59:58
от Exciter
Language Filter & Registered Content

Автор Anomia

Ответов: 1
Просмотров: 147
Последний ответ 14.02.2017, 01:30:23
от Anomia
3 Custom HTML модуля в позиции debug на сайте Joomla 3

Автор abrodski

Ответов: 0
Просмотров: 426
Последний ответ 31.07.2016, 00:46:57
от abrodski
Переопределение некоторых стандартных java скриптов

Автор uisr

Ответов: 0
Просмотров: 286
Последний ответ 27.08.2015, 16:31:42
от uisr
Подключение java script

Автор margo23

Ответов: 2
Просмотров: 335
Последний ответ 10.06.2015, 10:29:06
от robert