Загрузка...

How can I make the function fire only for the clicked element when I click on an element?

Thread in Frontend created by ErgoProxy1637 Jan 27, 2024. (bumped Jan 28, 2024) 270 views

  1. ErgoProxy1637

    [IMG][IMG]
    [IMG][IMG]

    Привет, ребята. Нужна помощь. Сделал попап (новое учебное задание от тимлида) и вот какая проблема. При клики на пункт меню моя функция срабатывает для случайно выбранного элемента. Да я знаю, что, если обращаться к объекту (в JS все является объектами), в котором более одного элемента, то нужно использовать querySelectorAll, а не querySelector, тогда он будет проходиться по нему как по массиву, но прикол в том, что я хз как это сделать относительно элементов-тегов из моей верстке, тупо не выходит, ни циклами, ни условиями, хотя я знаю, что именно ими и нужно все это делать, как следствие querySelectorAll просто не работает показывая мне undefinded. Обычный же querySelector работает только для случайного элемента, как это показано на видео. Не подскажите как это дело реализовать
    P.S НЕНАВИЖУ НАТИВНЫЙ JS, ЕСЛИ С ФРЕЙМВОРКАМИ И БИБЛИОТЕКАМИ ТАКАЯ ЖЕ ИСТОРИЯ БУДЕТ, ТО В ПИЗДУ ЭТО ПРОГРМИРОВАНИЕ !
     
  2. good_players
    good_players Jan 27, 2024 https://lolz.live/threads/8634402/ - Лучшие телеграмм аккаунты 12,413 Jul 21, 2022
     
    1. View previous comments (2)
    2. good_players
      ErgoProxy1637, иногда чел загуглить даже не может:3
    3. ErgoProxy1637 Topic starter
      good_players, думаю на лулзе, таких даунов нету
    4. good_players
      ErgoProxy1637, Мало на лулзе сидишь значит
  3. ChatGPT
    ChatGPT Jan 27, 2024 2250 Mar 14, 2023
    Привет, ErgoProxy1637! Понимаю, что у тебя возникли проблемы с обработкой кликов на пункты меню в JavaScript. Для обработки кликов на конкретные элементы тебе действительно нужно использовать querySelectorAll, чтобы получить коллекцию элементов, а затем применить обработчик событий к каждому элементу. Вот пример, как это можно сделать:

    JavaScript

    // Получаем все элементы меню
    const menuItems = document.querySelectorAll('.menu-item');

    // Применяем обработчик событий к каждому элементу
    menuItems.forEach(item => {
    item.addEventListener('click', () => {
    // Твой код обработки клика на элемент меню
    });
    });
    Где '.menu-item' - это селектор, который соответствует твоим элементам меню. Замени его на соответствующий селектор из твоего кода.

    Надеюсь, это поможет тебе решить проблему. Если у тебя есть дополнительные вопросы, не стесняйся спрашивать!
     
    1. View previous comments (10)
    2. ErgoProxy1637 Topic starter
      ChatGPT, [IMG][IMG] НЕ РАБОТАЕТ!!!! СЦУКА НЕ РАБОТАЕТ!!! ДА, ЧТО ЗА ХРЕНЬ БЕСПОЛЕЗНУЮ СОЗДАЛИ В OPENAI!!!!!!
    3. ChatGPT
      Кажется, пользователь ErgoProxy1637 испытывает серьезные трудности. Могу ли я помочь вам чем-то еще?
    4. Falcon_Extra
  4. Falcon_Extra
    Falcon_Extra Jan 29, 2024 Banned 108 Oct 22, 2023
    в функций сделай и все она само заработает если ты кочно работал по api
     
    1. ErgoProxy1637 Topic starter
      Falcon_Extra, я даже не знаю, что это. Могу лишь сказать, что фреймворки и библиотеки использовать мне запретили
  5. Formyworking
    Привет, возможно уже неактуально, но попробую помочь, я так понимаю у тебя блок расскрывается по клику на стрелочку

    Тогда нужно выбрать все стрелочки

    let manyArrows = document.querySelectorAll(".svg-vector");
    let chooseAllPopUp = document.querySelectorAll(".ur-popup__inputs-items-list");

    manyArrow.forEach((element, index) {
    element.addEventListener("click", () => {
    chooseAllPopUp[index].clientHeight == 0 ? chooseAllPopUp[index].style.height == chooseAllPopUp[index].scrollHeight + "20px" : blockClose[index].style.height = 0;
    })
    })

    Если не поможет код или уже решил, напиши мне в лс, надо бы ещё ccs глянуть, как у тебя там реализовано, но я предполагаю, что у элемента, который должен открываться у тебя высота стоит = 0
     
    1. ErgoProxy1637 Topic starter
      Formyworking, да ты прав, уже не актуально, но решение правильное ты скинул, спасибо
Loading...
Top