Назначение обработчиков Через свойство объекта
Читал статью по Введение в события Назначение обработчиков Через свойство объекта
document.getElementById('myElement').onclick = function() { alert('Спасибо') } <input id="myElement" type="button" value="Нажми меня"/> Но когда я вынес в отдельный файл js, <script type="text/javascript" src="script.js"></script> document.getElementById('myElement').onclick = function() { alert('Спасибо') }работать перестало, объясните почему? Может это как-то связано с: Все вызовы типа getElementById должны запускаться после описания соответствующего HTML-узла, а лучше - после окончания загрузки страницы. Иначе узел просто не будет найден Или просто записывать иначе ? или этот вариант используется только на html страничке ? |
<script type="text/javascript"> window.onload = function(){ document.getElementById('myElement').onclick = function() { alert('Спасибо'); }; }; </script> <input id="myElement" type="button" value="Нажми меня"/> |
Спасибо ! :)
|
Igor',
да, Вы правы. Разбор html производится сверху-вниз, и если скрипт запускается из <head>, на момент, когда он работает, <body> еще не существует. Решение - то, что предложил Monolithed, либо диспетчеризация событий на уровне документа (яркий пример - jQuery live() ). |
Часовой пояс GMT +3, время: 22:33. |