Доступ event.target в незаметном JavaScript IE8

Следующая функция получает целевой элемент в выпадающем меню:

function getTarget(evt){

 var targetElement = null;

 //if it is a standard browser
 if (typeof evt.target != 'undefined'){
  targetElement = evt.target;
 }
 //otherwise it is IE then adapt syntax 
 else{
  targetElement = evt.srcElement;
 }

 //return id of <li> element when hovering over <li> or <a>
 if (targetElement.nodeName.toLowerCase() == 'li'){
  return targetElement;
 }
 else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){

    return targetElement.parentNode;
 }
 else{
  return targetElement;
 }

Само собой разумеется, это работает в Firefox, Chrome, Safari и Opera, но это не делает в IE8 (и я предполагаю в предыдущих версиях также). Когда я пытаюсь отладить его с IE8, я получаю ошибку "участник, не Найденный" на строке:

targetElement = evt.srcElement;

наряду с другими последующими ошибками, но я думаю, что это - ключевая строка. Любая справка будет цениться.


Извините, по некоторым причинам форматирование не корректно.

Вот функция снова

 function getTarget(evt){

var targetElement = null;

//if it is a standard browser get target
if (typeof evt.target != 'undefined'){
    targetElement = evt.target;
}
//otherwise it is IE then adapt syntax and get target
else{
    targetElement = evt.srcElement;
}

//return id of <li> element when hovering over <li> or <a>
if (targetElement.nodeName.toLowerCase() == 'li'){
    return targetElement;
}
else if (targetElement.parentNode.nodeName.toLowerCase() == 'li'){

            return targetElement.parentNode;
}
else{
    return targetElement;
}

}//заканчивают getTarget

16
задан Cœur 9 July 2019 в 15:29
поделиться

1 ответ

Самая короткая версия из всех:

function getTarget(e) {
var evn = e || window.event;
return evn.srcElement || e.target;
}
1
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: