Оглавление

16.6. Последовательность событий

События возникают последовательно, например, последовательность событий при нажатии кнопкой мыши на элементе страницы будет такой:
onmousedown
onmouseup
onclick


При двойном нажатии последовательность будет такой:
onmousedown

onmouseup

onclick

ondblclick
Это значит, что событие ondblclick возникает после события onclick.

 

При нажатии клавиши на клавиатуре последовательность будет такой:
onkeydown
onkeypress
onkeyup

 

Продемонстрируем это на примере (листинг 34).

 

Листинг 34. Последовательность событий


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <title>Последовательность событий</title>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript">
<!--
function f_print(Str) {
   var div1 = document.getElementById("div1");
   div1.innerHTML += Str + "<br>";
}
//-->
</script>
</head>
<body onload="f_print('Событие onload - Страница загружена');" 
 onmousedown="f_print('Событие onmousedown - Нажали');"
 onmouseup="f_print('Событие onmouseup - Отпустили');"
 onclick="f_print('Событие onclick - Щелчок');"
 onkeydown="f_print('Событие onkeydown - Нажали');"
 onkeypress="f_print('Событие onkeypress - Нажали');"
 onkeyup="f_print('Событие onkeyup - Отпустили');">
<p onmouseover="f_print('Событие onmouseover - Навели курсор');"
 onmouseout="f_print('Событие onmouseout - Убрали курсор');">
Щелкните мышью в любом месте страницы
</p><p></p>
<div id="div1"></div>
</body>
</html>

 Посмотреть пример...

 

Данный пример позволяет наглядно увидеть последовательность событий. После загрузки возникнет событие onload. Щелкнем в любом месте окна, и, если не отпускать кнопку мыши, отобразится только событие onmousedown. Если отпустить, то возникают сразу два события: onmouseup и onclick. Если нажать любую клавишу клавиатуры и не отпускать, то возникнут сразу два события: onkeydown и onkeypress. Причем если продолжать удерживать клавишу нажатой, то событие onkeypress будет повторяться. Если отпустить, то возникнет событие onkeyup. Если навести курсор мыши на надпись "Щелкните мышью в любом месте страницы", то возникнет событие onmouseover. Если убрать курсор с надписи, то возникнет событие onmouseout. (1)

Примечания:
  • Следует напомнить, что события возникают в такой последовательности в Web-браузере Microsoft Internet Explorer. В других Web-браузерах событийная модель может быть другой. Все примеры скриптов в этой книге написаны для Microsoft Internet Explorer, и в дальнейшем мы будем изучать объектную и событийную модель именно этого Web-браузера.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити