событие.toElement в IE8 и Firefox?

Я заметил, что в Chrome и IE9 для событий onmouseout есть событие.свойство toElement (таким образом, вы можете определить, на какой элемент теперь указывает мышь).

Я не могу найти аналога в Firefox.

к сожалению, я не могу использовать jQuery для обработки этих событий, я должен использовать родной js.

любой совет был бы признателен.

6 ответов


используйте это, чтобы решить мою проблему

event.target


на самом деле event.currentTarget должен работать в Chrome, Firefox и IE


Я встретил проблему, когда я использую ответ Джея,event.target в firefox указывает на родительский элемент event.toElementцель на chrome.
После просмотра события obj, я нахожу event.originalEvent.target, Он хорошо работает как на firefox, так и на chrome.


по состоянию на 2014 год IE11 не поддерживает toElement, Я просмотрел объект события и нашел target иметь те же данные, что и toElement.

то есть, если вы нажмете на дочерний элемент внутри элемента, вызванного этим событием, дочерний элемент будет "целью" и сохранен в этом атрибуте.

элемент, из которого запускается событие, хранится в .

Примечание, я тестировал это только для ie 11, поэтому более старые версии могут не поддерживать этот.

поэтому для поддержки firefox ie и chrome (и, возможно, других, потребуется заполнение, что-то вроде:

var target = e.toElement || e.relatedTarget || e.target || function () { throw "Failed to attach an event target!"; }

здесь e - это event


код легко следовать..

enter code here
if(typeof evt.toElement !== "undefined")
{
        evt.toElement.classList.toggle('done');
}
else if(typeof evt.relatedTarget !== "undefined")
{
    if(evt.relatedTarget !== null)
    {
        evt.relatedTarget.classList.toggle('done');
    }
    else if(typeof evt.currentTarget !== "undefined")
    {
        evt.currentTarget.classList.toggle('done');
    }
    else
    {
    console.log("s_f_li_clickexception...");    
    } //endif
} //endif