работа с событиями - не срабатывает 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, время: 23:44. |