Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2017, 21:18
Новичок на форуме
Отправить личное сообщение для LoGao Посмотреть профиль Найти все сообщения от LoGao
 
Регистрация: 26.06.2017
Сообщений: 3

setTimeout и Объект события
Здравствуйте. Столкнулся с проблемой при работе setTimeout и объектом события.

var handler = function(e) {
    e.currentTarget; // элемент на котором вызвано событие

    setTimeout(function(){
        e.currentTarget; // null
    },3000);
};

elem.addEventListener("mousedown", handler, false);


Как корректно обратиться к объекту события в данном случае?
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2017, 21:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

LoGao,
сохранить в переменную?
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2017, 21:54
Новичок на форуме
Отправить личное сообщение для LoGao Посмотреть профиль Найти все сообщения от LoGao
 
Регистрация: 26.06.2017
Сообщений: 3

Спасибо. А почему null в currentTarget? Все остальное вроде передается правильно кроме этого свойства.
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2017, 22:11
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

LoGao,
Вы какой-то фреймворк используете? React например грешит тем что в хендлер кидает синтетические события. Ну, или например ваше вью при перерисовки разрушает дом элемент и вставляет полностью новый дом элемент.

Сам себя поправлю. Обычно использую в таких случаях target, а не currentTarget. currentTarget становится null из-за bubble event, т.к. событие всплывает с конкретного элемента до document при этом на каждом элементе во время всплытия меняется currentTarget. В итоге currentTarget на событие становится null. Когда вызывается setTimeout событие уже "всплыло".

Последний раз редактировалось EmperioAf, 27.06.2017 в 00:29.
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2017, 04:19
Новичок на форуме
Отправить личное сообщение для LoGao Посмотреть профиль Найти все сообщения от LoGao
 
Регистрация: 26.06.2017
Сообщений: 3

Логично. Спасибо за ответы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перекрытие события keyup другими при setTimeout Sogl ExtJS 0 23.06.2016 03:34
можно ли на объект повесить два события одновременно? andrew_F Общие вопросы Javascript 5 30.04.2012 14:51
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 11.10.2011 00:45
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45