Как сократить скрипт?

У меня есть три функции. Можно было бы сократить этот скрипт и с трех функции сделать одну?

$(function () {
  $(".sort .dropdown-toggle_search").click(function () {
    $(this).next(".sort .dropdown-content_search").toggle();
    $(".sort .dropdown-toggle_search-arrow").toggleClass("rotate");
  });

  $(document).click(function (e) {
    var target = e.target;
    if (
      !$(target).is(".search_block-dropdown.sort") &&
      !$(target).parents().is(".search_block-dropdown.sort")
    ) {
      $(".sort .dropdown-content_search").hide();
      $(".sort .dropdown-toggle_search-arrow").removeClass("rotate");
    }
  });
});

$(function () {
  $(".cena .dropdown-toggle_search").click(function () {
    $(this).next(".cena .dropdown-content_search").toggle();
    $(".cena .dropdown-toggle_search-arrow").toggleClass("rotate");
  });

  $(document).click(function (e) {
    var target = e.target;
    if (
      !$(target).is(".search_block-dropdown.cena") &&
      !$(target).parents().is(".search_block-dropdown.cena")
    ) {
      $(".cena .dropdown-content_search").hide();
      $(".cena .dropdown-toggle_search-arrow").removeClass("rotate");
    }
  });
});

$(function () {
  $(".brand .dropdown-toggle_search").click(function () {
    $(this).next(".brand .dropdown-content_search").toggle();
    $(".brand .dropdown-toggle_search-arrow").toggleClass("rotate");
  });

  $(document).click(function (e) {
    var target = e.target;
    if (
      !$(target).is(".search_block-dropdown.brand") &&
      !$(target).parents().is(".search_block-dropdown.brand")
    ) {
      $(".brand .dropdown-content_search").hide();
      $(".brand .dropdown-toggle_search-arrow").removeClass("rotate");
    }
  });
});
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 1
KornevaViktoria
@KornevaViktoria
Frontend Developer
1) Вынести это в функцию и передавать туда только классы и элементы
$(".brand .dropdown-toggle_search").click(function () {
    $(this).next(".brand .dropdown-content_search").toggle();
    $(".brand .dropdown-toggle_search-arrow").toggleClass("rotate");
  });

  $(document).click(function (e) {
    var target = e.target;
    if (
      !$(target).is(".search_block-dropdown.brand") &&
      !$(target).parents().is(".search_block-dropdown.brand")
    ) {
      $(".brand .dropdown-content_search").hide();
      $(".brand .dropdown-toggle_search-arrow").removeClass("rotate");
    }
  });


2) 3 раза вызвать функцию, передав туда необходимые данные
3) Вынести элементы в константы
4) Для каких целей это написано 3 раза?
$(function () {...}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽