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

#javascript

#javascript

Вопрос:

Я создал некоторый тег label с помощью JavaScript примерно так:

  var labelTag = document.createElement("label"); 
 labelTag.id = i; 
 labelTag.className ="myrows"; 
 labelTag.innerHTML = data[1];
  

Все в порядке, но мне нужно добавить атрибут onlick и к этой метке.

Итак, мне нужно, чтобы результат выглядел примерно так:

   <label id='0' class='myrows' onclick=myfunction('first','second',..)> some info here</label>
  

Я пытаюсь с этим: labelTag.onclick=myfunction('first',second,...);

Ошибки в коде нет, но после того, как я запускаю страницу в браузере и вижу источник, этот атрибут отсутствует. Что не так?

Комментарии:

1. можем ли мы попробовать с помощью jQuery??

Ответ №1:

Это

 labelTag.onclick = myfunction('first', 'second', ...);
  

присваивает возвращаемое значение myfunction labelTag.onclick .

Вы должны обернуть его в анонимную функцию, если хотите передать параметры функции:

 labelTag.onclick = function() {
    myfunction('first', 'second', ...);
};
  

Обратите внимание, что вы не увидите никаких изменений в DOM, если вы проверите его.


Для получения дополнительной информации об обработке событий и различных способах присоединения обработчиков я рекомендую прочитать отличные статьи о quirksmode.org .

Комментарии:

1. эхх … я проверил, как это показано в исходном коде, ваш комментарий тоже работает хорошо, но это был второй … так что … спасибо, мастер

2. @holian: я проверил, показано ли это в исходном коде , я не знаю, что вы имеете в виду под этим. это был второй случай , и что вы имеете в виду под этим?

Ответ №2:

 var labelTag = document.createElement("label"); 
labelTag.id = i; 
labelTag.className ="myrows"; 
labelTag.innerHTML = data[1];
labelTag.onclick = function() {
   alert('Clicked');
};