event.toElement в IE8 и Firefox? - PullRequest
       44

event.toElement в IE8 и Firefox?

46 голосов
/ 22 декабря 2011

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

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

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

Любой совет будет оценен.

Ответы [ 6 ]

37 голосов
/ 04 ноября 2013

USE это решит мою проблему

event.target
21 голосов
/ 22 декабря 2011
10 голосов
/ 07 мая 2015

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

8 голосов
/ 24 октября 2013

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

6 голосов
/ 30 сентября 2014

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

То есть, если вы щелкнете по дочернему элементу внутри элемента, с которым сработало это событие, дочерний элемент будет 'target' и будет сохранен в этом атрибуте.

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

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

Таким образом, для поддержки Firefox, т. Е. И Chrome (и, возможно, других, потребуется полифил, что-то вроде:

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

Где e является event

0 голосов
/ 14 февраля 2014

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

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
...