Читать «HTML5. Недостающее руководство» онлайн - страница 317
Мэтью Мак-Дональд
Динамическое подключение к событию В
Существуют разные способы подключения событий, но не все они поддерживаются всеми браузерами. В этом разделе применяется подход свойства события, который поддерживается всеми браузерами. Кстати, если вы решите использовать какой - либо инструментарий JavaScript, наподобие jQuery, то, скорее всего, обнаружите, что он предоставляет еще одну систему подключений событий, которая
К счастью, подключение событий не представляет ничего сложного. Нужно просто установить свойство события с таким же именем, как и атрибут события, который бы использовался в обычной ситуации.
Но будьте осторожны, чтобы не сделать эту ошибку: imgObject.onclick = swapImage();
Этот код выполняет функцию swapImage() и использует ее результат (если функция возвращает таковой), чтобы установить обработчик события. Это почти наверняка не то, что нам нужно.
Чтобы понять, что в действительности происходит при щелчке по элементу <img> , нужно разобраться с кодом функции swapImage() . Эта функция берет элемент <img> и модифицирует его атрибут src , чтобы тот указывал на новое изображение ( рис. П2.3):
// Отслеживаем состояние изображения — день или ночь. var dayTime = true;
// Эта функция выполняется, когда происходит событие onClick. function swapImage() {
// Меняем день на ночь или наоборот и обновляем изображение // в соответствии с новым состоянием.
if (dayTime == true) { dayTime = false; imgObject.src = "cloudy.jpg"; }
else { dayTime = true;
imgObject.src = "sunny.jpg"; }
}
Иногда событие передает информацию своему обработчику. Чтобы получить эту информацию, функции нужно дать один параметр. По соглашению, этот параметр обычно называется event или просто e :
function swapImage(e) {
...
}
Свойства объекта события зависят от этого события. Например, событие onMouseMove предоставляет текущие координаты указателя мыши (которые исполь-зуются в программе рисования в