169 похожих чатов

Привет всем. Такой вопрос как можно отследить нажатие кнопки? Если

не знаешь какой у нее id и с таким классом кнопок много. Просто есть кнопки добавления в избранное. И у каждой кнопки может быть абсолютной любой id. Как можно получать этот id?

24 ответов

14 просмотров

Повесить глобальный слушатель клика на документ. У event.target проверять наличие класса кнопки добавления в избранное, и по условию код писать. Передавать параметр можно дата-аттрибутом Например кнопку сделать button.js-add-to-favorite[data-product-id=123]

Я так понимаю, что у кнопок один класс? Если так, повесить событие на этот класс, потом вытягивать id.

MrGart-Некрасов Автор вопроса
Roman O
Я так понимаю, что у кнопок один класс? Если так, ...

А разве не до первого нахождения работает отслеживание по классу? До первого найденного на странице?

MrGart-Некрасов Автор вопроса
Кириллл 🚀 Go Aaply
Повесить глобальный слушатель клика на документ. У...

Окей. Спасибо попробую. Просто с event вообще практически не работал. Только учусь) спасибо за совет

MrGart Некрасов
А разве не до первого нахождения работает отслежив...

Можно пройтись циклом по всем кнопкам, нужно дать им общий признак, например класс. Класс может быть одинаковым и сколько угодно раз на странице встречаться Для получения всех элементов с одним классом используй document.querySelectorAll или document.getElementsByClassName

Кириллл 🚀 Go Aaply
Можно пройтись циклом по всем кнопкам, нужно дать ...

Ага, а если на странице 20 кнопок, а нужно отслеживать клики только на 10 из них? Ты раздашь лишние классы на другие кнопки и получится немного не то.

MrGart Некрасов
А разве не до первого нахождения работает отслежив...

У тебя на странице может быть много кнопок с одним классом. Если пропишешь: $('.your-class').on('click', function(event) { ... }); у тебя будет доступен event.target, который будет содержать айди.

Egor Платонов
Ага, а если на странице 20 кнопок, а нужно отслежи...

Если товары и кнопки подгружаются динамически при скролле, например, то такой вариант буде тлучше, чем вешать сто слушателей (я почему-то подумал в первую очередь про динамическую подгрузку)

Кириллл 🚀 Go Aaply
Если товары и кнопки подгружаются динамически при ...

Лучше чем? Я же тебе говорю, ты лишние кнопки затронешь.

Egor Платонов
Лучше чем? Я же тебе говорю, ты лишние кнопки затр...

Производительностью Один слушатель с условием внутри лучше, чем 100 слушателей на разные элементы И там не кнопки будут задеваться, а целиком весь документ

Кириллл 🚀 Go Aaply
Производительностью Один слушатель с условием внут...

Я тебе говорю, если ты по всем кнопкам пройдешься в документе , то получится билиберда , другие кнопки получат классы которые должны быть не у них, а у отдельной группы кнопок.

Egor Платонов
Я тебе говорю, если ты по всем кнопкам пройдешься ...

Складывается ощущение, что мы о разных вещах говорим) и это уже к выше заданному вопросу не относится

Egor Платонов
Это относится к твоему ответу )

Ну значит ты меня не понял) я не предлагаю как-то динамически классы присваивать Я сказал, что нужно кнопкам, который отвечают за добавление в избранное, добавить единый класс, чтобы их можно было идентифицировать

Кириллл 🚀 Go Aaply
Ну значит ты меня не понял) я не предлагаю как-то ...

А я от тебя и хочу услышать, как ты поймёшь какие именно кнопки на странице отвечают за добавление в избранное? Если у них ещё нет общего признака

MrGart-Некрасов Автор вопроса
Egor Платонов
Это относится к твоему ответу )

На странице может быть ~2к кнопок. И DOM строиться с помощью vertual.node(мог ошибиться с названием)

Egor Платонов
А я от тебя и хочу услышать, как ты поймёшь какие ...

В смысле как? Глазами! Человек же сам вертску пишет. Найдет кнопку в коде, которая должна в избранное класть, и добавит класс

Кириллл 🚀 Go Aaply
...и?

По твоей логике "глазами" можно можно вручную каждой кнопке указывать класс.

Egor Платонов
По твоей логике "глазами" можно можно вручную кажд...

Если у него кнопки динамически рендерятся, то значит у нег оесть место, где лежит код одной кнопки, и достаточно в него класс добавить....

Кириллл 🚀 Go Aaply
Производительностью Один слушатель с условием внут...

И в целом непонятно про какую ты производительность говоришь, если повесить слушатель на одну кнопку, на основе которой рендерятся другие 100 кнопок, то на входе будет ровно тоже самое что если бы 100 слушателей вешал отдельно.

Egor Платонов
И в целом непонятно про какую ты производительност...

Я никому не предлагал "повесить слушатель на одну кнопку, на основе которой рендерятся другие 100 кнопок" Ты че-то своё уже выдумываешь там) если считаешь, что я не прав — предложи более оптимальный вариант

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта