Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   объект Event внутри setTimeout (https://javascript.ru/forum/events/40952-obekt-event-vnutri-settimeout.html)

simple 25.08.2013 23:13

объект Event внутри setTimeout
 
Добрый вечер. Подскажите пожалуйста почему в анонимной функции вызывающейся по таймеру нет доступа к объекту event?
obj.onmousedown = function (e) {
    var x = e.pageX; // запоминаем координаты
    var timeId = setTimeout(function(e) {
        if (x != e.pageX) return false; //проверяем не перемстился ли курсор но тут е почему то undefined
        obj.onmousemove = handler;
}, 500);
    obj.onmouseup = function () {
         clearTimeout(timeId);
};
};

смысл кода в следующем, кликаем по объекту зажимаем клавишу и если в течении 500 мс клавиша нажата и курсор мыши не покидал данной области то стартуем перемещение объекта. Такой вот фильтр чтобы отделять обычные клики от кликов по перемещению.

ksa 25.08.2013 23:30

Цитата:

Сообщение от simple
Подскажите пожалуйста почему в анонимной функции вызывающейся по таймеру нет доступа к объекту event?

Встречный вопрос:
- Почему он вообще там должен быть?

Причем с этого вопроса и нужно начинать...

ksa 25.08.2013 23:32

Цитата:

Сообщение от simple
но тут е почему то undefined

Да сволочь он просто! :D Как он посмел так изловчиться - х/з...

Читай учебник
http://learn.javascript.ru/function-...еменные

simple 26.08.2013 00:07

я уже понял что глупость написал, объект ивент создается после возникновения события, следовательно функция вызывающая по таймеру не может иметь данный объект.

ksa 26.08.2013 15:17

Цитата:

Сообщение от simple
я уже понял что глупость написал

О! Это уже шаг к просветлению. :yes:

Tampler 27.08.2013 01:12

Цитата:

Сообщение от ksa (Сообщение 269305)
Да сволочь он просто! :D Как он посмел так изловчиться - х/з...

Читай учебник
http://learn.javascript.ru/function-...еменные

Ты всех на учебнички посылаешь?

ksa 27.08.2013 09:52

Цитата:

Сообщение от Tampler
Ты всех на учебнички посылаешь?

Только тех, кто задает быкварские вопросы. Т.к. все ответы на них есть именно в букваре...


Часовой пояс GMT +3, время: 12:03.