Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2023, 21:24   #1
Kirukato...
Новичок
Джуниор
 
Регистрация: 28.06.2015
Сообщений: 3
По умолчанию Объединить два кода

Помогите пожалуйста объединить два кода в один. Они делают одно и тоже - отбирают нужные блоки. Первый код фильтрует с помощью кнопок, второй выпадающим списком

Код:
 <div style="margin:10px 5px 20px 0;">
    <a href="javascript:;" class="filterA activeA" data-filter="all">View all</a>
    <a href="javascript:;" class="filterA" data-filter="o">black</a>
    <a href="javascript:;" class="filterA" data-filter="a">white</a>
    <a href="javascript:;" class="filterA" data-filter="p">green</a>
    </div>
 
    <div class='Luxexe'>
    <select id='Jueyci'>
         <option value='ci'>View all</option>
         <option value="o">black</option>
         <option value="a">white</option>
    </select>
    </div>

  <div class='container'   id='Rupymi'>
    <div class=" a1 ci filter-item o show"> <a data-fancybox='aq' href="http://ipic.su/7z1pOc"><img src='http://ipic.su/7z1pOc'> </a></div>
    <div class=" a1 ci filter-item p show"> <a data-fancybox='aq' href="http://ipic.su/7z1qJw"><img src='http://ipic.su/7z1qJw'> </a></div>
    <div class=" a1 ci filter-item a show"> <a data-fancybox='aq' href="http://ipic.su/7z1qJw"><img src='http://ipic.su/7z1qJw'> </a></div>
</div>
Код:
$(document).ready(function() {
  $(".a1").children('a').fancybox({
    loop: false
  });
  $('.filterA').click(function() {
    if( $(this).hasClass('activeA') ) {
      console.log('already activeA');
    }
    else {
      console.log('new activeA');
      $('.filterA').removeClass('activeA');
      $(this).addClass('activeA');<a> Tag bekommt die Klasse "selected" hinzugefьgt
 
      var $dataFilter = $(this).data('filter');
 
      if( $dataFilter == 'all') {
        console.log('add show to all');
        $('.filter-item:not(.show)').fadeIn(500);
        $('.filter-item').addClass('show');
        $('.a1').children('a').attr('data-fancybox', $dataFilter).data("fancybox", $dataFilter);
      }
      else {
        console.log('delete show ' + $dataFilter);
        $('.filter-item:not(.' + $dataFilter + ')').fadeOut(0);
        $('.filter-item:not(.' + $dataFilter + ')').removeClass('show');
        $('.filter-item.' + $dataFilter).fadeIn(500);
        $('.filter-item.' + $dataFilter).addClass('show');
        $('.a1.' + $dataFilter).children('a').attr('data-fancybox', $dataFilter).data("fancybox", $dataFilter);
      }
    };
  });
});
 
 
  $(document).ready(function () {
    var filter_select_el = document.getElementById("Jueyci");
    var items_el = document.getElementById("Rupymi");
    filter_select_el.onchange = function () { console.log(this.value);
    var items = items_el.getElementsByClassName("ci");
    for (var i = 0; i < items.length; i++) {
    if (items[i].classList.contains(this.value)) { items[i].style.display = "block"; }
    else { items[i].style.display = "none"; } } }; });
Kirukato... вне форума Ответить с цитированием
Старый 23.05.2023, 14:01   #2
Килобайт
Новичок
Пользователь
 
Регистрация: 23.05.2023
Сообщений: 13
Лампочка

Код:
$(document).ready(function() {
  $(".a1").children('a').fancybox({
    loop:false
  });
  $('.filterA').click(function() {
    if ($(this).hasClass('activeA')) {
      console.log('already activeA');
    } else {
      console.log('new activeA');
      $('.filterA').removeClass('activeA');
      $(this).addClass('activeA');

      var $dataFilter = $(this).data('filter');

      if ($dataFilter == 'all') {
        console.log('add show to all');
        $('.filter-item:not(.show)').fadeIn(500);
        $('.filter-item').addClass('show');
        $('.a1').children('a').attr('data-fancybox', $dataFilter).data("fancybox", $dataFilter);
      } else {
        console.log('delete show ' + $dataFilter);
        $('.filter-item:not(.' + $dataFilter + ')').fadeOut(0);
        $('.filter-item:not(.' + $dataFilter + ')').removeClass('show');
        $('.filter-item.' + $dataFilter).fadeIn(500);
        $('.filter-item.' + $dataFilter).addClass('show');
        $('.a1.' + $dataFilter).children('a').attr('data-fancybox', $dataFilter).data("fancybox", $dataFilter);
      }
    };
  });

  var filter_select_el = document.getElementById("Jueyci");
  var items_el = document.getElementById("Rupymi");
  filter_select_el.onchange = function() {
    console.log(this.value);
    var items = items_el.getElementsByClassName("ci");
    for (var i = 0; i < items.length; i++) {
      if (items[i].classList.contains(this.value)) {
        items[i].style.display = "block";
      } else {
        items[i].style.display = "none";
      }
    }
  };
});
Объединил два скрипта в один. Добавил в него обработчик изменения выпадающего списка, который ищет элементы с классом "ci" и скрывает или показывает их в зависимости от выбранного значения. Теперь можно использовать как кнопки, так и выпадающий список для фильтрации элементов с классом "ci".
Килобайт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Продажа уникального кода шифровки данных на языке Python + кода по нахождению простых чисел Megamind 137 Безопасность, Шифрование 0 25.10.2022 10:11
Необходимо объединить два кода в один buk_bear Помощь студентам 0 22.12.2021 17:40
Прошу помощи разобраться с примером кода, который приведен ниже. Закомментируйте пожалуйста строки кода, объяснив их значения. Irinat1111 Паскаль, Turbo Pascal, PascalABC.NET 3 15.07.2018 09:30
Объединить два кода в один c++\noob Общие вопросы C/C++ 3 08.03.2011 11:21
Распознавание Аски кода и скан кода MyLastHit Общие вопросы Delphi 8 06.12.2010 18:34