@sdydno
Начинающий программист.

Как сделать чтобы фильтр отработал стразу?

есть 2 фильтра, как сделать чтобы они сразу отработали без клика на них, то есть при загрузке страницы.

  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
function filterByCategory(cat) {
  const dataCats = $("[data-cat]");
  if (cat == 'all') {
    dataCats.removeClass("hide");
  } else {
    dataCats.each(function () {
      if (cat == $(this).data('cat')) {
        $(this).removeClass('hide');
      } else {
        $(this).addClass('hide');
      }
    });
  }
}

$(function () {
  const worksSlider = $('[data-slider="slick"]');

  /* Filter
  =====================*/
  const filter = $("[data-filter]");

  filter.on("click", function (event) {
    event.preventDefault();
    const cat = $(this).data('filter');
    filterByCategory(cat);
  });
  
  filterByCategory('female');
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
groog
@groog
Я только учусь
Завернуть функции фильтров в ready

Вот так
$(function() {
  const worksSlider = $('[data-slider="slick"]');

    /* Filter
    =====================*/
    let filter = $("[data-filter]");

    filter.on("click", function(event) {
        event.preventDefault();
        changeBlocksVisibility($(this).data('filter'))
    });
  });

$().ready(() => changeBlocksVisibility("female"));

function changeBlocksVisibility(cat = 'all') {
        if(cat == 'all') {
            $("[data-cat]").removeClass("hide");
        } else {
            $("[data-cat]").each(function() {
                let workCat = $(this).data('cat');

                if(workCat != cat) {
                    $(this).addClass('hide');
                } else {
                    $(this).removeClass('hide');
                }
            });
        }
}
Ответ написан
Ваш ответ на вопрос

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

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