Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.08.2014, 16:17
Аспирант
Отправить личное сообщение для ainur777 Посмотреть профиль Найти все сообщения от ainur777
 
Регистрация: 09.11.2013
Сообщений: 32

Сортировка товаров
Всем привет есть код сортировки:

<select class="selec" id="ids">
            <option value="ids" selected>По типу</option>
            <option value="id1" >Персональное использование</option>
            <option value="id2" >Для учебных заведений</option>
            <option value="id3" >Мелкосерийное производство</option>
			</select>
			<select class="selec" id="langs">
        <option value="langs" selected>По производителю</option>
        <option value="lang1" >PICASO 3D</option>
        <option value="lang2" >MakerBot</option>
        <option value="lang3" >3D Systems</option>
        <option value="lang4" >PP3DP</option>		
        </select>
<div id="d-contents">
<div class="item border id1 id2 ids">
		<img src="img/shop/12_pic.jpg" width="200" height="200">
		<p><b>Space Monkey Gorilla</b> </p>
		<button  class="border" >Ок</button>
	</div>
<div class="item border id1  ids">
		<img src="img/shop/9_pic.jpg" width="200" height="200">
		<p><b>PrintBox3D One</b></p>
		<button  class="border" >Ок</button>
	</div>
<div class="item border id2  ids">
		<img src="img/shop/9_pic.jpg" width="200" height="200">
		<p><b>3D Print</b></p>
		<button  class="border" >Ок</button>
	</div>
	</div>
	
	<div id="d-contents">
<div class="item border id1 id2 ids">
		<img src="img/shop/12_pic.jpg" width="200" height="200">
		<p><b>Awpa</b> </p>
		<button  class="border" >Ок</button>
	</div>
<div class="item border id1  ids">
		<img src="img/shop/9_pic.jpg" width="200" height="200">
		<p><b>Prie</b></p>
		<button  class="border" >Ок</button>
	</div>
<div class="item border id2  ids">
		<img src="img/shop/9_pic.jpg" width="200" height="200">
		<p><b>3D Dret</b></p>
		<button  class="border" >Ок</button>
	</div>
	</div>


var first=true;
  $("select.selec").change(function () {
       var a='';
     $("select.selec").each(function () {
       a+=$(this).val();
     });
     if(a=='###'){
        $("#d-contents > div").show();
        first=true;
        return false;
    }
    if(first){first=false; $("#d-contents > div").hide();}
    var a = $(this).val();
    $("#d-contents > div."+a).show();
});


Проблема с сортировкой, если выбрать id1 выходит товар, а если сразу выбрать id2 то id1 и id2 смешаются...
Нужно добавить проверку классов, на форуме встретился код:
$('select').change(function() {
    
    // прячем нужные блоки
    $('div:not(#d-contents)').hide();
    
    var selected = [];
    var uniqueSelected = [];
    
    // формируем массив значений options:selected 
    $("select option:selected").each(function() {
        selected.push($(this).val());
    });
    
    // показываем блоки с классами, которые попали в массив selected
    $.each(selected, function(index, val){
        if (val!=='#') {
            $('.'+val).show();
        }
    })
    
    // составляем массив, состоящий из уникальных значений выбранных элементов в select-ах       
    uniqueSelected = $.grep(selected, function(v, k){
       return $.inArray(v ,selected) === k;
    });
    
    // если массив равен ['#'] (что означает, что во всех селектах выбрано одно значение), то показываем все блоки
    if (uniqueSelected.length===1) $('div:not(#d-contents)').show();

});


Но он удаляет все divы...

Пожалуйста помогите с кодом.

Последний раз редактировалось ainur777, 26.08.2014 в 16:46.
Ответить с цитированием
  #2 (permalink)  
Старый 26.08.2014, 16:28
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а можно скрин запечатлеть? а то от вашего html в глазаг рябит, куча всего..

в вашем js коде есть такая строчка:
$('select').change(function() {

а в html тэга select нет, такое впечатление, что вы выдрали часть кода и все. связь установить сложно когда одни куски
Ответить с цитированием
  #3 (permalink)  
Старый 26.08.2014, 16:47
Аспирант
Отправить личное сообщение для ainur777 Посмотреть профиль Найти все сообщения от ainur777
 
Регистрация: 09.11.2013
Сообщений: 32

Отредактировал
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2014, 08:46
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

на то они и айдишники, чтобы быть уникальными, т.е. 2 и более одинаковых по имени id быть не должно. поправьте пока это и отпишитесь. я еще скрин просил.
кстати, в отладке очень хорошо помогает console.log(). почитайте как оно работает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти скрипт поиска товаров Pikener Общие вопросы Javascript 2 04.12.2013 08:57
Google Analytics комерция несколко товаров в 1 транзакции sig Общие вопросы Javascript 0 28.10.2013 14:26
Говнокод)) Сортировка пузырьком. Lorines Ваши сайты и скрипты 3 03.10.2013 01:23
jCart. Не работает ajax для динамически созданных товаров. Whitetown jQuery 2 09.03.2012 08:31
Корзина товаров yuriii jQuery 7 30.05.2010 02:38