Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2021, 08:18
Интересующийся
Отправить личное сообщение для Andrew Kolomiets Посмотреть профиль Найти все сообщения от Andrew Kolomiets
 
Регистрация: 26.02.2020
Сообщений: 14

Как можно сократить этот код?
$(`.buy${i}`).click(() => {
            $(`.pict${i}, .buy${i}`).hide(),
            $(`.otmena${i}, .bought${i}`).fadeIn(300);
        }),
        $(`.pict${i}`).dblclick(()=>{
            $(`.pict${i}, .buy${i}`).hide(),
            $(`.otmena${i}, .bought${i}`).fadeIn(300);
        })
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2021, 08:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Andrew Kolomiets
Как можно сократить этот код?
Как вариант...
const i = 1
const fnc = _ => {
	$(`.pict${i}, .buy${i}`).hide(),
	$(`.otmena${i}, .bought${i}`).fadeIn(300);
}
$(`.buy${i}`).click(fnc),
$(`.pict${i}`).dblclick(fnc)
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2021, 08:40
Интересующийся
Отправить личное сообщение для Andrew Kolomiets Посмотреть профиль Найти все сообщения от Andrew Kolomiets
 
Регистрация: 26.02.2020
Сообщений: 14

Спасибо, метод рабочий!
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2021, 08:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Andrew Kolomiets, если бы было еще больше "дубляжа", можно было бы еще и так завернуть...
const o = {
	buy: 'click',
	pict: 'dblclick'
}
// тут цикл по i
const fnc = _ => {
	$(`.pict${i}, .buy${i}`).hide(),
	$(`.otmena${i}, .bought${i}`).fadeIn(300);
}
for (cls in o) $('.' + cls + i).on(o[cls], fnc)
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2021, 09:26
Интересующийся
Отправить личное сообщение для Andrew Kolomiets Посмотреть профиль Найти все сообщения от Andrew Kolomiets
 
Регистрация: 26.02.2020
Сообщений: 14

ksa, а почему именно так? Это будет работать быстрее, нежели просто весь код в for?
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2021, 12:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от Andrew Kolomiets
а почему именно так?
Я просто показал как еще можно заменить вот это
$(`.buy${i}`).click(fnc),
$(`.pict${i}`).dblclick(fnc)


Сообщение от Andrew Kolomiets
Это будет работать быстрее, нежели просто весь код в for?
Что-то мне подсказывает, что в твоем случае можно вообще без циклов обойтись...
Т.е. уйти от использования переменной i.

Но для этого нужно знать с каким хтмлем ты работаешь...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно оптимизировать код данный JS код? IDigle1 Общие вопросы Javascript 8 22.12.2017 01:04
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40
Можно ли как-то сократить скрипт случайной цитаты (см. внутри)? Hyuga_Nia Общие вопросы Javascript 4 20.01.2011 22:00