Coolam
@Coolam
Web-developer

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

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

Есть такая запись, можно как-то объединить под один fadeIn?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@megakor
Laravel | Tailwind | Vue.js + Inertia.js
$(`.pict${i}, .buy${i}`).fadeIn(300);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro
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 месте.
Ответ написан
Ваш ответ на вопрос

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

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