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

В соответствии с документацией Обработка побочных эффектов , вы можете передать обратный вызов мета-атрибуту для получения полезной нагрузки ответа:

export const uploadByBase64 = ({ file, path }) => ({
  type: UPLOAD_BY_BASE64,
  payload: { file, path },
  meta: {
    fetch: CREATE,
    resource: 'images/upload/base64',
    callback: ({ payload, requestPayload }) => {
      // payload = response payload
    },
  },
});

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

2 ответа

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

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

Проблема в том, что в IE объект события не отправляется в качестве аргумента обработчика, это просто глобальное свойство ( window.event ):

function getTarget(evt){
 evt = evt || window.event; // get window.event if argument is falsy (in IE)

 // get srcElement if target is falsy (IE)
 var targetElement = evt.target || 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;
 }
32
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

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