Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.02.2012, 00:37
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 522

Сообщение от nasqad
во-первых событие mouseup происходит вне браузера и не ловится
Например в IE очень даже ловится.

Сообщение от FINoM
если человек зажимает левую клавишу мыши, доводит курсор до области, выходящей за рамки окна,
Может попробовать отслеживать mouseOut на document или window.

Последний раз редактировалось Magneto, 05.02.2012 в 00:43.
Ответить с цитированием
  #12 (permalink)  
Старый 05.02.2012, 00:46
Аватар для nasqad
Куратор
Отправить личное сообщение для nasqad Посмотреть профиль Найти все сообщения от nasqad
 
Регистрация: 18.09.2011
Сообщений: 450

Цитата:
Например в IE очень даже ловится.
ну это идеологически не верно и все равно не кроссбраузерно же

ну невозможно это по выше названным трем причинам, по пунктам можно посмотреть в мсдн для надежности.
если достаточно ухода из окна то обернуть весь документ дивом, и слушать его mouseout, body не прокает.
можно использовать выше названный window.blur но он требует потерю фокуса окна, тоесть клик вне него

var my_event;
        $('body').unbind().mousemove(function(event) {
            if(!my_event) {
                my_event = event
                return;
            }
            for(e in event) {
                if(!( e in my_event) || event[e] !== my_event[e])
                    if( typeof event[e] != 'object' && +event[e] < 10) console.log(e);
                    else {
                        for(ee in event[e]) {
                            var s = event[e];
                            if(typeof s[ee] != 'object' && s[ee] !== my_event[ee] && +event[e] < 10) console.log(s[ee]);
                        }
                    }
            }

        })

Последний раз редактировалось nasqad, 05.02.2012 в 01:00.
Ответить с цитированием
  #13 (permalink)  
Старый 05.02.2012, 01:55
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 932

Сообщение от nasqad
ну это идеологически не верно
Чёй то?
__________________
[23:50:17 MSK] Андрей: теперь знаю что гуглить по ключевым словам тоже можно)
Ответить с цитированием
  #14 (permalink)  
Старый 05.02.2012, 02:05
Аватар для nasqad
Куратор
Отправить личное сообщение для nasqad Посмотреть профиль Найти все сообщения от nasqad
 
Регистрация: 18.09.2011
Сообщений: 450

Сообщение от Nekromancer Посмотреть сообщение
Чёй то?
дак не должен браузер ловить события вне свой ведомой области, есть свое окно, вот за него и должен отвечать; mousedown mouseup это серия событий лишь формально, фактически это просто событие которое произошло за пределами окна браузера, если он его ловит - он превышает полномочия; вот почему window.mouseout невалиден это вопрос

Последний раз редактировалось nasqad, 05.02.2012 в 02:15.
Ответить с цитированием
  #15 (permalink)  
Старый 05.02.2012, 02:17
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 932

nasqad,
Ага, давай лешим его прав и уволим.

А если серьёзно, то браузер должен предоставлять наиболее полную и гибкую возможность управлять окном. Отжатие кнопки мыши вне окна, это всё ещё событие браузера, если до этого, нажатие было в нём. Это предоставляет возможность решать вот такие проблемы как у автора темы.

Вот когда браузеры начнут рассказывать на каком окне произошло отжатие кнопки, тогда будите рассказывать про "превышение полномочий".
__________________
[23:50:17 MSK] Андрей: теперь знаю что гуглить по ключевым словам тоже можно)
Ответить с цитированием
  #16 (permalink)  
Старый 05.02.2012, 15:44
Аватар для FINoM
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 1,507

Magneto, спасибо, я думал что event.which нет у mousmove.
__________________
Javascript - прога чтобы в браузерах рисовать. ©Livaanderiamarum
Ответить с цитированием
  #17 (permalink)  
Старый 05.02.2012, 17:01
Аватар для dmitriymar
Пацефист
Отправить личное сообщение для dmitriymar Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 2,529

Сообщение от Nekromancer
это всё ещё событие браузера, если до этого, нажатие было в нём
кстати нет,через раз ловиться
делал по другому:
при нажатии ставил флаг при отпускании сбрасывал.
соответственно при выходе за пределы рабочей области в любом случае обнулял.а вариантов определения курсор в рабочей области или нет множество,от определения координат(станут ундефенит) до события маусоут при соответственном построении интерфейса ,либо как предложил Magneto,

Последний раз редактировалось dmitriymar, 05.02.2012 в 17:04.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно узнать что value в INPUT изменилось? moskrc jQuery 2 22.10.2010 08:06
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 10:21
Как узнать, что содержит onClick? PHPNoob Events/DOM/Window 2 28.08.2008 06:12
Как узнать, что IFRAME загрузился? DeUre Общие вопросы Javascript 4 01.08.2008 13:09
Как узнать что находится в <label></label> duke_nu Events/DOM/Window 4 22.04.2008 20:53