Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не удаляется событие. (https://javascript.ru/forum/jquery/39179-ne-udalyaetsya-sobytie.html)

hoid 19.06.2013 11:41

Не удаляется событие.
 
$(document).ready(function(){
	var height = Math.floor($('.scroll_ground').height()/($('.servs table').height()/$('.servs').height()));
	$('.scroll_ground').append('<div class="scroller" style="height:'+height+'px"></div>');
	$('.scroller').on('mousedown',function(event){
	var startY = event.pageY;
	var scrollerY = $('.scroller').offset().top;
	var diff = startY-scrollerY;
	var scrollerPY = $('.scroller').position().top;
	$('body').on('mousemove',{offset:diff,start:startY,scrollerStart:scrollerPY},function(event){
		var diff = event.pageY-event.data.start;
		var curpos=event.data.scrollerStart+diff;
		alert(diff);
		if(curpos<0)$('.scroller').css('top','0');
		else if(curpos>$('.scroll_ground').height()-$('.scroll_ground').outerHeight(false)){
			var top = $('.scroll_ground').height()-$('.scroll_ground').outerHeight(false);
			$('.scroller').css('top',top+'px');
		}
		else $('.scroller').css('top',curpos+'px');
	})
	$('body').one('mouseup',function(){
		$('body').off('mousemove');
	})
	})
})

Пишу скроллбар. В конце удаляю событие моусмув, но почему-то не удаляется. Помогите, пожалуйста.

рони 19.06.2013 12:11

Цитата:

Сообщение от hoid
В конце удаляю событие моусмув, но почему-то не удаляется

а как проверял?
и где html?

danik.js 19.06.2013 12:41

Цитата:

Сообщение от hoid
$('body').off('mousemove');

Этим ты не только свой обработчик снимешь, но и любые другие, навешанные остальными скриптами.

hoid 19.06.2013 12:42

бегунок добавляю в начале сюда
<div class="right">
					<div class="scroll_ground">
						
					</div>
					<div id="servers_scroll_bottom" class="scrollbottom"></div>
				</div>

у класса right margin-top: -202px
проверяю так: вставляю alert(diff) в функцую под маусмув. Алертит всегда, после отпускания кнопки тоже.

hoid 19.06.2013 12:49

Цитата:

Сообщение от danik.js (Сообщение 257160)
Этим ты не только свой обработчик снимешь, но и любые другие, навешанные остальными скриптами.

Это поправимо. А вот как сделать, чтоб все таки обработчики удалялись.

danik.js 19.06.2013 13:18

Цитата:

Сообщение от hoid
проверяю так: вставляю alert(diff) в функцую под маусмув. Алертит всегда, после отпускания кнопки тоже.

Какой блин алерт. Ты же мышку тестируешь. А алерт блочит взаимодействие страницы с мышью. Открой для себя console.log()


Часовой пояс GMT +3, время: 00:59.