событие.toElement в IE8 и Firefox?
Я заметил, что в Chrome и IE9 для событий onmouseout есть событие.свойство toElement (таким образом, вы можете определить, на какой элемент теперь указывает мышь).
Я не могу найти аналога в Firefox.
к сожалению, я не могу использовать jQuery для обработки этих событий, я должен использовать родной js.
любой совет был бы признателен.
6 ответов
в Firefox это event.relatedTarget
https://developer.mozilla.org/en/DOM:event.relatedTarget#1003983
Я встретил проблему, когда я использую ответ Джея,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