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

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

$(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");
    }
  });
});
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 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 () {...}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
Rocket Брянск
от 60 000 до 100 000 ₽
22 мая 2024, в 18:48
1000 руб./в час
22 мая 2024, в 18:37
8000 руб./за проект
22 мая 2024, в 18:34
10000 руб./за проект