Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 19.01.2017, 22:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

zerofx,
не осилил
Ответить с цитированием
  #12 (permalink)  
Старый 19.01.2017, 23:06
Аспирант
Отправить личное сообщение для zerofx Посмотреть профиль Найти все сообщения от zerofx
 
Регистрация: 08.11.2013
Сообщений: 78

может так будет проще ... =))

1) когда в фильтре выставлен только 1н фильтр, а именно количество - как оно на скрине то все правильно срабатывает ... http://c2n.me/3GABbkp - всьо верно!

2) когда же фильтровать сначала по "возрасту", а затем по количеству то он показывает то же http://c2n.me/3GABihc, ето не верно...

а должен показывать элементы, которые отвечают только конкретному возрасту, в нашем случае это "7", а показывает все элементы, этот блок 5 лет не должен отображаться - так как в фильтре стоит 7

надеюсь так будет понятнее
Ответить с цитированием
  #13 (permalink)  
Старый 19.01.2017, 23:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

zerofx,
нет не понятно, x == 7 и x <= 7 , это разные фильтры можно только один вариант, хотите иначе придумывайте алгоритм.
Ответить с цитированием
  #14 (permalink)  
Старый 19.01.2017, 23:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от zerofx
) когда же фильтровать сначала по "возрасту", а затем по количеству
такого сейчас нет, фильтруется всегда по всем параметрам , только если параметр число, добавлено что пропускать меньше или равно этому числу , если параметр строка пропускать только равно.
Ответить с цитированием
  #15 (permalink)  
Старый 19.01.2017, 23:19
Аспирант
Отправить личное сообщение для zerofx Посмотреть профиль Найти все сообщения от zerofx
 
Регистрация: 08.11.2013
Сообщений: 78

Сообщение от рони Посмотреть сообщение
zerofx,
нет не понятно, x == 7 и x <= 7 , это разные фильтры можно только один вариант, хотите иначе придумывайте алгоритм.

алгоритм правильный ..

а если вынести на отдельный скрипт + data_atr ? именно фильтрацию по количеству элементов?

грубо, но главное чтобы работало ... или вы думаете это не вариант?
Ответить с цитированием
  #16 (permalink)  
Старый 19.01.2017, 23:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от zerofx
а если вынести на отдельный скрипт + data_atr ? именно фильтрацию по количеству элементов?

грубо, но главное чтобы работало ... или вы думаете это не вариант?
не понимаю
Ответить с цитированием
  #17 (permalink)  
Старый 19.01.2017, 23:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

zerofx,
для медитации
Каталог с несколькими фильтрами: проверка на отображение (в т.ч. используется jQuery)
Ответить с цитированием
  #18 (permalink)  
Старый 22.01.2017, 02:02
Аспирант
Отправить личное сообщение для zerofx Посмотреть профиль Найти все сообщения от zerofx
 
Регистрация: 08.11.2013
Сообщений: 78

Сообщение от рони Посмотреть сообщение
zerofx,
для медитации
Каталог с несколькими фильтрами: проверка на отображение (в т.ч. используется jQuery)

Все таки здоровый сон многое решает ...
Решение банально простое - но так как я себя накрутил я о нем забыл, как всегда все было под носом ..

if - else - решили все!

$(document).ready(function() {
    var b = $("[data-element]");
    console.log(b.length);
    $("select").change(function() {
        var a = $("#age").val(),
            d = $("#size").val(),
            e = $("#parts").val(),
            f = $("#paste").val(),
            c = [a, d, e, f];
        b.hide().filter(function(a, b) {
            return $(b).data("element").every(function(b, a) {
            	if (a == 1) {
            		console.log('--1--');
            		return !c[a] ||(b == +b && +c[a] >= +b) || b == c[a]
            	}
            	 else {
            	 	console.log('--2--');
            	 	return !c[a] || c[a] == b
            	}
            })
        }).show()
    })
});

если значение возраста не равно true - то есть пустое значение (false) выполняется один фильтр, а если равно true - то есть значение возраста не пустое то выполняем другой вильтр

вот и проблеме конец!

я благодарю Вас за терпение и помощь =)
Без Вас бы ничего не получилось ...


Если можно спросить о методе "filter" - это метод js а не JQuery я правильно понял?

потому что все что нашел ведет к методу each...

Последний раз редактировалось zerofx, 22.01.2017 в 02:08.
Ответить с цитированием
  #19 (permalink)  
Старый 22.01.2017, 02:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

zerofx,
https://learn.javascript.ru/array-iteration#filter
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка процесса при отрисовке изображения slovnosvoboda Общие вопросы Javascript 3 20.05.2016 13:56
Прошу раскритиковать наслойку работы с MySql. Alasdair Node.JS 4 21.11.2015 20:06
Fast-AJAX - быстрая библа для аякса KosBeg Ваши сайты и скрипты 23 20.06.2015 21:32
Упростить код Nifler Общие вопросы Javascript 4 12.06.2015 17:29
вопрос по видимости переменных. yiooxir Angular.js 3 31.10.2013 12:37