@Misha_mishy1

Как можно оптимизировать данный код?

Добрый вечер!
Подскажите пожалуйста, как я могу оптимизировать такой код?
Знаю, что как-то можно не писать кучу классов и id, а использовать переменную this.
Однако, когда я попробовал через нее сделать, то у меня по нажатию на любое место срабатывает функция.
$(document).ready(function(){

    $( ".slideToggle-1" ).click(function(){        
      $(".toggle__content-1").slideToggle(); 
    });

    $( ".slideToggle-2" ).click(function(){        
      $(".toggle__content-2").slideToggle(); 
    });

    $( ".slideToggle-3" ).click(function(){
      $(".toggle__content-3").slideToggle(); 
    });

    $( ".slideToggle-4" ).click(function(){        
      $(".toggle__content-4").slideToggle(); 
    });
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
SmthTo
@SmthTo Куратор тега CSS
Все перепёлки мира будут оплакивать мою смерть.
Общие классы или data-атрибуты добавить нельзя им всем?

Ну а так — что-то наподобие этого как вариант:

$('[class*="slideToggle-"]').on( "click", function() {
  $(this).find('[class*="toggle__content-"]').slideToggle(); 
});


Ответ написан
zabudkin
@zabudkin
Инженер-системотехник, программист, админ, ТПУ!!!!
$(document).ready(function(){
 for (var i = 1; i < 5; i++) {
    $( ".slideToggle-" + i ).click(function(){        
      $(".toggle__content-" + i).slideToggle(); 
    });
 }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@krka92
Если у тебя slideToggle-1, slideToggle-2 и т.д. - это одно и то же, тогда вот так

$( ".slideToggle" ).click(function() {
  $(this).slideToggle(); 
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы