Назначение обработчиков Через свойство объекта
Читал статью по Введение в события Назначение обработчиков Через свойство объекта
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, время: 11:53. |