Следственный эксперимент> <script> > function setHE (){ > self.onmouseover=over; > }
Супер... Вот И Ошибка. Это Что Должно Означать? К Чему Привязано Событие? Честно Говоря, Что Такое self, Я Не Знаю. Но, Если Это Аналог this, То Фокус Не Пройдет: Функция Написана В Контексте window, И this Здесь Не Означает Никакого Элемента. Вот И DOM Тоже Не Понимает, К Чему Это Привязано, Поэтому Везде currentTarget - undefined.
Повторюсь. 1. currentTarget - Это Тот _Элемент_, Которому Назначен Обработчик События. 2. target - Это Тот Элемент, Который Событие Вызвал.
Пример:
<Table><TR><TD Id=Cell Style="Padding:1em;">Some Text, <Em>Some Text</Em> </Table> <Script Type="text/javascript"> function MouseOver(e){ document.getElementById('Result').firstChild.nodeValue='Target: '+e.target.nodeName+'\ncurrentTarget: '+e.currentTarget.nodeName; }//MouseOver
/* Назначать Событие Желательно Чему-Нибудь Определенному: */ document.getElementById('Cell').onmouseover=MouseOver; </Script>
<Div Id=Result> ... </Div>
Как Видно, currentTarget - Это Всегда TD, Которой Назначен Обработчик.
Еще Одно Замечание Касаемо Теперь Уже Target. Вообще Говоря, Текстовый Node Внутри Элемента <TD> Не Должен Менять Target, Потому Что Он - Не Элемент. Эту Ошибку В Мозилле Недавно Исправили (Кажется, Этот Фикс Успел Попасть В Финальную Версию 1.3). Поэтому Я Включил В Пример Внутрь TD Еще И Элемент <Em>, Чтобы Показать, Как На Нем Меняется Target. Но, В Любом Случае, currentTarget ВСЕГДА Показывает На Элемент, К Которому Привязано Событие. |