Как добавить атрибут события к HTML-тегу с помощью JavaScript?

Привет, друзья! У меня возникла небольшая проблема при работе с JavaScript. Я создаю метки программно, но не могу добавить к ним атрибут onclick. Вот что я делаю:

let metka = document.createElement('label');
metka.id = 'myId';
metka.className = 'myClass';
metka.textContent = 'Текст метки';

Все работает нормально, но мне нужно добавить обработчик клика. Я пробовал так:

metka.onclick = mojaFunkcija('param1', 'param2');

Но когда я смотрю исходный код страницы в браузере, атрибута onclick нет. Что я делаю не так? Как правильно добавить обработчик события к элементу, созданному через JavaScript? Буду благодарен за помощь!

Правильно тебе подсказали про addEventListener, но есть еще вариант с атрибутом onclick. Можно так:

metka.setAttribute(‘onclick’, ‘mojaFunkcija(“param1”, “param2”)’);

Только учти, что кавычки внутри нужно экранировать. И да, этот способ считается устаревшим, но иногда бывает полезен. А вообще, лучше юзать addEventListener, как уже сказали.

привет! я тоже сталкивался с подобной проблемой. попробуй использовать метод addEventListener вместо прямого присваивания onclick. это более современный и гибкий подход. вот как это можно сделать:

metka.addEventListener('click', function() {
  mojaFunkcija('param1', 'param2');
});

таким образом ты добавишь обработчик клика, который будет вызывать твою функцию с нужными параметрами. еще один плюс - можно добавлять несколько обработчиков на одно событие. надеюсь, это поможет решить твою задачу!

Дело в том, что ты присваиваешь результат выполнения функции, а не саму функцию. Попробуй так:

metka.onclick = function() {
  mojaFunkcija('param1', 'param2');
};

Или еще лучше использовать стрелочную функцию:

metka.onclick = () => mojaFunkcija('param1', 'param2');

Так обработчик будет добавлен корректно и сработает при клике. Удачи в кодинге!