Задать вопрос

Как можно сократить этот JQuery код?

$('.pict' + i).fadeIn(300);
        $('.buy' + i).fadeIn(300);

Есть такая запись, можно как-то объединить под один fadeIn?
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 1
megakor
@megakor
Senior Go developer at VK Video
$(`.pict${i}, .buy${i}`).fadeIn(300);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
const classes = [
  '.pict',
  '.buy',
];
$(classes.map(c => c + i).join(',')).fadeIn(300);
// или
classes.forEach(cls => $(cls + i).fadeIn(300));


Вопрос: нафига?
Ответ написан
Комментировать
Чтобы не писать одно и то же число в разных местах и не использовать глобальные константы, можно описать свою функцию и вызывать её:
$.fn.myFadeIn = function () {
    $(this).fadeIn(300);
}; 

$('...').myFadeIn();

Если потребуется изменить скорость анимации, это можно будет сделать в 1 месте.
Ответ написан
Ваш ответ на вопрос

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

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