Удаление события mousemove
Добрый день, всех с праздником.
У меня наверняка дурацкая проблема, но решаю ее весь день. в $(document).ready имеется вот такой код: var newSelect = document.getElementById('subscription'); newSelect.onmousedown = function(){ $(".test").append("down!<br>"); var t = event.target || event.srcElement; while (t.id == "") t = t.parentNode; document.onmousemove = function(){ $(".test").append("MOVE!<br>"); t.parentNode.move = true; //alert("hello"); //t = t.getElementsByTagName("div")[0]; } this.onmouseup = function(){ document.onmousemove = null; } }; То есть мне надо, чтобы при нажатии на объект образовывался слушатель mousemove. И чтобы он удалялся, когда кнопка мыши отпущена. В общем-то кое как я с этим справилась, но все-таки мне нужно немного другое, а именно: чтобы слушатель изменения положения мыши удалялся при "отпуске" мыши в любом месте окна, а не только на объекте subscription. Заранее спасибо за подсказки. |
Цитата:
|
Цитата:
|
<input id="inp" type="button" value="click"> <div id="myDiv"></div> <script> inp.onmousedown = function() { document.onmousemove = function() { myDiv.innerHTML = 'x: ' + event.clientX + '<br>' + 'y: ' + event.clientY } } document.onmouseup = function() { document.onmousemove = null } </script> |
Пыталась воспользоваться вашим кодом, как-то в моем контексте он не срабатывал. Так и не поняла, почему. Просто продолжила кодить (итоговый вариант выглядит немного по-другому, там должен происходить drag&drop на появившийся элемент), проблема сама собой как-то и иссякла.
Но спасибо за попытку помочь. |
писал скрипт недавно и была необходимость обнулить mousemove
вот как делал (может будет полезно вам) slider.init=function(id , out) { var elem, out; out = document.getElementById(out); elem=document.getElementById(id); // кнопка нажата elem.onmousedown=function (e) { e = e || window.event; slider.status = ( (e.which != 'undefind' && e.which=="1") || e.button == "1" ) ? true : false; slider.clickPos = slider.mousePosit(e) - slider.elemPos(elem); // определения места клика на ползунке slider.objPos = slider.elemPos(elem.parentNode); // определение положение контейнера для ползунка slider.end = elem.parentNode.offsetWidth - elem.offsetWidth; // расчет конечной точки котейнера //процес движения начат document.onmousemove=function (e) { e = e || window.event; if (slider.status){ slider.move(e, elem, out); document.body.onselectstart = function() { return false } document.ondragstart = function() { return false } } } } // процес окончен document.onmouseup = function () { slider.status=false; document.onmousemove =null; } } |
Часовой пояс GMT +3, время: 17:02. |