Подтвердить что ты не робот

Event.toElement в IE8 и Firefox?

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

Я не могу найти похожую недвижимость в Firefox.

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

Любой совет будет принят во внимание.

4b9b3361

Ответ 1

Вместо event.toElement вы должны использовать это:

event.target

Ответ 3

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

Ответ 4

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

Ответ 5

Начиная с 2014 года IE11 не поддерживает toElement, я просмотрел объект события и обнаружил, что target имеет те же данные, что и для элемента.

То есть, если вы нажмете на дочерний элемент внутри элемента, к которому это событие включается, дочерний элемент будет "объектом" и будет сохранен в этом атрибуте.

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

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

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

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

Где e - event

Ответ 6

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

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