Удаление события 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, время: 07:21. |