События: движение мыши при нажатой клавише
var down = 0;
var x = 0; var y = 0; Как отловить движение мыши при нажатой клавише? Вот этот код вызывает бесконечное alert('move'). Почему это происходит? Почему отжатие мыши не вызывает присвоение down = 0 ? document.onmousedown = function(e) { e = e || window.event; down = 1; x = e.clientX; y = e.clientY; //alert(e.clientX); //alert(down); } document.onmouseup = function(e){ e = e || window.event; down = 0; //alert(x); } document.onmousemove = function(e){ e = e || window.event; if(down == 1){ alert('move'); /* var dx = e.clientX - x; var dy = e.clientY - y; alert(dx); */ } } |
это происходит как раз из за alert('move')
при alert теряем mouseup напишите if(down == 1){document.body.innerHTML='move'; }else {document.body.innerHTML='no';} будет нормально |
о - мерси, я думал таймер вешать на функцию, а почему так с алертом обстоит?
функция не идет дальше пока я не нажму "ок" в поле алерта? и есть же вроде способ параллельно пустить выполнение? мне это в принципе не нужно именно, но хочу просто понять каков механизм. |
Цитата:
да и вообще лучше выводить в див инфу чем в алерт |
Цитата:
|
Цитата:
|
А проще события мыши нет? Мне нужно чтобы при движении мыши с нажатой клавишей выводилось сообщение!
|
<script> down = 0; onmousedown = function(){down = 1;} onmousemove = function(){down ? alert(true) : 0;} onmouseup = function(){down = 0;} </script> |
Окно сообщения (true) не закрывается а постоянно вылазит!
|
<script> down = 0; onmousedown = function(){down = 1;} onmousemove = function(){if(down){alert(true); down = 0;}} </script> |
Часовой пояс GMT +3, время: 05:01. |