#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');
};