@DeniSidorenko

Как модернизировать данный фильтр javascript?

Добрый день есть такой код фильтра
$(document).ready(function () {
  var eqEtage;
  var eqPrice;
  var eqSquare;
  $('.filter-item__buttons .button').on('click', function (event) {
    event.preventDefault();
    $('.filter-item__buttons .button').removeClass('active');
    $(this).addClass('active');
  });
  $('#filter-aply').on('click', function () {
    var etage = $('.filter-item__buttons').children('.button.active').data('etg');
    etage = parseFloat(etage); // Squareя

    var squareMin = $("#js-range__metr").data('from');
    squareMin = parseFloat(squareMin);
    var squareMax = $("#js-range__metr").data('to');
    squareMax = parseFloat(squareMax); // Price

    var priceMin = $("#js-range__price").data('from');
    priceMin = parseFloat(priceMin);
    var priceMax = $("#js-range__price").data('to');
    priceMax = parseFloat(priceMax);
    var dataCount = 0;
    var saleItems = $('.sale-item');

    for (var i = 0; i < saleItems.length; i++) {
      var item = saleItems[i];
      var etageLocal = $(item).data('etage');
      etageLocal = parseFloat(etageLocal);
      var price = $(item).data('price');
      price = parseFloat(price);
      var square = $(item).data('square');
      square = parseFloat(square);
      eqPrice = price <= priceMax && price >= priceMin;
      eqEtage = etageLocal == etage;
      eqSquare = square <= squareMax && square >= squareMin;

      if (eqEtage == false || eqPrice == false || eqSquare == false) {
        $(item).removeClass('showed');
        $(item).removeAttr('data-count');
      }

      if (eqPrice == true && eqEtage == true && eqSquare == true) {
        $(item).addClass('showed');
        dataCount++;
        $(item).attr('data-count', dataCount);
        $('.sale-item__eye').attr('data-position', dataCount);
        // $('.sale-item[data-count="1"]').click();
      }
    }
  });
});


Данный скрипт отвечает за смену класса на кнопке
$('.filter-item__buttons .button').on('click', function (event) {
    event.preventDefault();
    $('.filter-item__buttons .button').removeClass('active');
    $(this).addClass('active');
  });


И как можно видеть лишь одна кнопка будет иметь активный класс
Но изменилось задача и теперь можно выбирать обе кнопки
$('.filter-item__buttons .button').on('click', function (event) {
    $(this).toggleClass('active');
  });


Так вот вопрос, как модернизировать код фильтра ( при клике ) , что бы если длина кнопок == 1 ( т.е выбрана одна кнопка ) выполняется скрипт что ниже
А если длина больше 1 ( выбраны 2 кнопки) то eqEtage автоматом идет true ведь в любом случае выполняется
Заранее спасибо
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы