Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по событиям (https://javascript.ru/forum/misc/40016-vopros-po-sobytiyam.html)

SteeLZzZ 21.07.2013 17:26

Вопрос по событиям
 
Здравствуйте, есть вот такой код:

<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">  
<script> 
var clickElements = document.getElementById('clickElement');
function dos(event)
{
//event = event || window.event;
alert("окей, спасиб");
}

document.clickElements.onClick = dos;
</script> 
</head> 

<body> 
<div id="clickElement">кликни по мне</div>
</body>
</html>

Что в нем не так? Cпасибо заранее.

danik.js 21.07.2013 17:41

Вот это не так:
document.clickElements.onClick = dos;

Должно быть так:
clickElements.onclick = dos;


И еще скрипт должен выполниться после загрузки html. Для этого опусти скрипт в самый конец, перед </body>, либо навешивай обработчик document@DOMContentLoaded

SteeLZzZ 21.07.2013 18:15

Цитата:

Сообщение от danik.js (Сообщение 263440)
Вот это не так:
document.clickElements.onClick = dos;

Должно быть так:
clickElements.onclick = dos;


И еще скрипт должен выполниться после загрузки html. Для этого опусти скрипт в самый конец, перед </body>, либо навешивай обработчик document@DOMContentLoaded

Спасибо. Еще я помню если в Head стоит <script> то содержимое тега может вызываться в любом месте в Body. Тут же все наоборот. Что вы по этому поводу скажете?

danik.js 21.07.2013 18:33

Все теги парсятся в и становятся доступными в том порядке, в котором они идут.
Цитата:

Сообщение от SteeLZzZ
Тут же все наоборот

Тут нужно, чтобы в момент исполнения скрипта были доступны элементы, так что все логично. Доступность функций не зависит от расположения тега <script>. Главное чтобы к моменту вызова этой функции, она уже была определена, то есть тег <script> успел распарситься. Тут функцию dos никто раньше времени не попытается вызвать.

SteeLZzZ 21.07.2013 19:57

Спасибо.
P.S.: Какой-то дегенерат в карму поставил "-", написав в причине что я школьник :) Взаимно, в общем.


Часовой пояс GMT +3, время: 01:08.