Показать сообщение отдельно
  #1 (permalink)  
Старый 07.05.2018, 23:41
Аспирант
Отправить личное сообщение для Булат Азат улы Посмотреть профиль Найти все сообщения от Булат Азат улы
 
Регистрация: 07.09.2016
Сообщений: 83

Как выполнить ".unbind('mousemove')", когда мышка выходит из блока
Всем привет. Делаю аудиоплеер, сделал шкалы времени и громкости. С помощью событий клика и наведения мышкой сделал регулировку. Но осталась одна проблема (такую проблему я замечал и в других плеерах).
Допустим, нажали мышкой на блок регулировки звука, и не отпуская, двигаем мышкой, регулируя звук. Если отпустить мышку в этом же блоке, то сработает функция "mouseup" и отвяжет "mousemove" к этому блоку.
А вот если в нажатом виде выйти за пределы блока (например, пользователь захотел сделать 100% громкости и перетащил меняющий размеры блок за пределы общего блока под указатель громкости) и там уже отпустить кнопку - функция "mouseup" не сработает, и при последующем наведении мышкой на блок громкости, внутренний блок всё ещё будет двигаться за мышкой.
Посоветуйте пожалуйста, как решить эту проблему?
Вот мой код JS:
$("#vol").mousedown(function(e){
	var offset = $(this).offset();
	$("#volCont").width(e.clientX - offset.left);
	vol = $("#volCont").width() / 100;
	audio.volume = vol;
	$("#vol").mousemove(function(e){
		var offset = $(this).offset();
		$("#volCont").width(e.clientX - offset.left);
		vol= $("#volCont").width() / 100;
		audio.volume = vol;
	});
});
$("#vol").mouseup(function(){
	$("#vol").unbind("mousemove");
});
Ответить с цитированием