работа с событиями - не срабатывает alert
Что не правильно в коде? Почему alert не работает?
Файл html: <div> <input type="submit" value="1" name="butt"> <input type="submit" value="2" name="butt"> <input type="submit" value="3" name="butt"> </div> Файл js:
var elems = document.getElementsByTagName('input');
for (var i = 0; i < elems.length; i++) {
elems[i].onclick = func;
}
function func() {
alert(this.value);
}
|
АндрейD,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
|
Спасибо за советы, всё поправил, но результата нет. Не понял на счёт " поиск по тегу". Кроме того, что я указал - ничего в коде нет.
|
АндрейD,
код ниже здесь, у вас работает?
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<div>
<input type="submit" value="1">
<input type="submit" value="2">
<input type="submit" value="3">
</div>
<script>
var elems = document.getElementsByTagName('input');
for (var i = 0; i < elems.length; i++) {
elems[i].onclick = func;
}
function func() {
alert(this.value);
}
</script>
</body>
</html>
|
Да, спасибо, работает. Но вот смотрите - сейчас заново всё написал, но в 2-х файлах html и js - в браузере появились кнопки, нажимаются, но alert нет. Сразу вырезаю код из js, вставляю его в html и всё включается, как по маслу! Буду Вам, очень признателен, если укажете мне причину несрабатывания из отдельного файла.
|
АндрейD,
либо что-то с кодировкой файла, либо неправильно указан путь к файлу, либо тег script у вас не там, гадать бестолку, смотрите, что пишет консоль. |
Дело в том, что всё прочее в этом файле работает. Проблема возникла именно в приведённом примере. В любом случае спасибо Вам, теперь есть возможность (хотя бы таким способом) двигаться дальше.
|
Цитата:
Итак, ответ я нашёл в книге "Шаблоны JS". Оказывается размещать ссылку (типа <script src="js/file_js.js"></script>) на прикреплённый файл js в <head> - это худший антишаблон! Правильнее всего прописывать её в конце страницы, перед закрывающим тегом </body>. Я это сделал и всё заработало! |
АндрейD,
правильный ответ: элемента на момент запуска скрипта нет. решение: domcontentloaded и ставьте спокойно загрузку скрипта с domcontentloaded в любое место, про антишаблон читайте, но без интузиазма. :) |
| Часовой пояс GMT +3, время: 18:55. |