Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2012, 15:43
Новичок на форуме
Отправить личное сообщение для sh33hs Посмотреть профиль Найти все сообщения от sh33hs
 
Регистрация: 12.05.2012
Сообщений: 1

Реализация каталога с фильтрами на JQuery
Добрый день, форумчане.

Сейчас делаю небольшой каталог при помощи JQuery, на страницу из CMS вывожу все товары, и при помощи фильтров скрываю/отображаю их в соответствии с запросом.

Вот пример разметки фильтра товара:

<form id="speedSet">
	<select size="1" name="speed">
		<option value="">Скорость</option>
		<option value="1-51">до 50км/ч</option>
		<option value="52-81">50-80км/ч</option>
		<option value="82-100">80-100км/ч</option>
		<option value="0-100">Показать все</option>
	</select>
</form>


Вот разметка секции с данными под фильтры:
<ul class="forFilters">
	<li class="speedFilter">Тут значение полученное из CMS</li>
</ul>



Вот скрипт в котором я сравниваю данные из выбранного <option> с данными из CMS:

$(document).ready(function() {
	

	$('#speedSet').change(function(){
		FilterSpeed();
	});
		
});

function FilterSpeed(){
	
// Получаю значения формы фильтра в массив
	var fields = $("#speedSet").serializeArray();

// Показываю все элементы  соответствующие фильтру		
	$('.speedFilter').map(function(){

// Помещаю в переменную массив с крайними значениями фильтра			
		var pwr = fields[0].value.split('-');
			
		if (
// Сравниваю значения приведя их к числовому типу 			
		Number(pwr[0]) < Number($(this).text()) && Number(pwr[1]) > Number($(this).text())
				
		){ 
				
			return this;
		}
			else {
			
			return null;
			
			}
			
		}).parent().parent().show();

// Скрываю все элементы  несоответствующие фильтру			
		$('.speedFilter').map(function(){
			
			var pwr = fields[0].value.split('-');
			
			if (
			
				Number(pwr[0]) > $(this).text() || Number(pwr[1]) < $(this).text()
				
				){ 
				
				return this;
			}
			else {
			
			return null;
			
			}
			
		}).parent().parent().hide();
		
		
		
}


Проблема состоит в том, что если сделать много таких фильтров (а их мне надо минимум 4), то те товары, которые попадают под один фильтр все равно выводятся, если соответствуют условию другого фильтра. А мне надо сделать так что бы если товар попал хоть под один фильтр больше не выводился...

Намекните, мне пожалуйста, как это реализовать
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация условий if/else с jQuery jsuse jQuery 8 25.09.2015 21:02
Динамически загружаемая jQuery и jQuery-функции в одном файле 67bytes Общие вопросы Javascript 6 06.03.2013 08:01
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 21:29
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16