Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2012, 21:28
Новичок на форуме
Отправить личное сообщение для DesiresDesigner Посмотреть профиль Найти все сообщения от DesiresDesigner
 
Регистрация: 09.05.2012
Сообщений: 6

Удаление события 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.

Заранее спасибо за подсказки.
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2012, 21:55
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от DesiresDesigner
чтобы слушатель изменения положения мыши удалялся при "отпуске" мыши в любом месте окна, а не только на объекте subscription.
Почему бы тогда не сделать onmouseup у самого документа, а не у объекта subscription.
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2012, 22:20
Новичок на форуме
Отправить личное сообщение для DesiresDesigner Посмотреть профиль Найти все сообщения от DesiresDesigner
 
Регистрация: 09.05.2012
Сообщений: 6

Сообщение от bes Посмотреть сообщение
Почему бы тогда не сделать onmouseup у самого документа, а не у объекта subscription.
Делала, не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 09.05.2012, 22:58
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<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>
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2012, 16:59
Новичок на форуме
Отправить личное сообщение для DesiresDesigner Посмотреть профиль Найти все сообщения от DesiresDesigner
 
Регистрация: 09.05.2012
Сообщений: 6

Пыталась воспользоваться вашим кодом, как-то в моем контексте он не срабатывал. Так и не поняла, почему. Просто продолжила кодить (итоговый вариант выглядит немного по-другому, там должен происходить drag&drop на появившийся элемент), проблема сама собой как-то и иссякла.
Но спасибо за попытку помочь.
Ответить с цитированием
  #6 (permalink)  
Старый 13.05.2012, 21:08
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

писал скрипт недавно и была необходимость обнулить 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;
	}	
	
	}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Дебаг js, или как найти обработчик события для тега jimm88 Events/DOM/Window 1 18.04.2012 15:11
Удаление обработчика события belkir Events/DOM/Window 8 22.09.2011 12:47
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Прерывание события на границе двух блоков miller Events/DOM/Window 0 25.06.2010 20:58