2017-01-13 5 views
0

Я искал много, но я не мог найти решение для этого или, возможно, я не смог найти хорошие ключевые слова для вопроса. Я работаю над аудио-плеером, и проблема заключается в регулировании громкости. Вот мой код функция перетаскивании должна происходить только когда функция MouseDown работает в противном случае он не должен работать, но это не отменяет OnMouseMove события на выходе кнопки мыши, так что я нужна ваша помощь ..остановить событие на mouseup, выпущенное mousedown в jquery

$(document).ready(function(){ 
    $(".volume_wrapper_slider").on("mousedown", function(e) { 
     $(this).on("mousemove", function(e) { 
      isDragging = true; 
      var slider_width = $(this).width(); 
        var slider_offset = $(this).offset().left; 
        var percentage1 = (100/slider_width); 
        var current_percentage = percentage1 * (e.clientX-slider_offset);   
         // move the bar w.r.t click 
        $(".vol_slided").width(current_percentage+"%"); 
        now_playing.volume = parseFloat(percentage1 * ($(".vol_slided").width()/100)); 
     }); 
    }); 
      // mouse up 
    $(".volume_wrapper_slider").mouseup(function(e) { 
     e.stopPropagation(); 
    }); 
}); 

Update - ----------------------------

это решить мою проблему благодаря @ jaromanda-х

 // volume control 

$(document).ready(function(){ 
     $(".volume_wrapper_slider").on("mousedown", function(e) { 
      canDrag = true; 
      $(this).on("mousemove", function(e) { 
       if (canDrag == true) { 
       var slider_width = $(this).width(); 
         var slider_offset = $(this).offset().left; 
         var percentage1 = (100/slider_width); 
         var current_percentage = percentage1 * (e.clientX-slider_offset); 

          // move the bar w.r.t click 
         $(".vol_slided").width(current_percentage+"%"); 
         now_playing.volume = parseFloat(percentage1 * ($(".vol_slided").width()/100)); 
       } 

      }); 
       // mouse up 
     $(".volume_wrapper_slider").mouseup(function(e) { 
      canDrag = false; 
     }); 
    }); 
}); 
+0

какое событие вы пытаетесь остановить? попробуйте использовать '.off()'? –

+0

вы хотите установить isDragging true на mousedown и isDragging false на mouseup и только обрабатывать события перемещения, если isDragging - это правда ... в основном, возможно, вам больше нужно беспокоиться о том, выпущена ли мышь за пределами рассматриваемого элемента. –

+0

@JaromandaX, позвольте мне попробовать –

ответ

0

что работал на меня ..

 // volume control 

$(document).ready(function(){ 
     $(".volume_wrapper_slider").on("mousedown", function(e) { 
      canDrag = true; 
      $(this).on("mousemove", function(e) { 
       if (canDrag == true) { 
       var slider_width = $(this).width(); 
         var slider_offset = $(this).offset().left; 
         var percentage1 = (100/slider_width); 
         var current_percentage = percentage1 * (e.clientX-slider_offset); 

          // move the bar w.r.t click 
         $(".vol_slided").width(current_percentage+"%"); 
         now_playing.volume = parseFloat(percentage1 * ($(".vol_slided").width()/100)); 
       } 

      }); 
       // mouse up 
     $(".volume_wrapper_slider").mouseup(function(e) { 
      canDrag = false; 
     }); 
    }); 
}); 
Смежные вопросы