Javascript 移动范围时,鼠标不受脚本引起的移动的干扰

Javascript 移动范围时,鼠标不受脚本引起的移动的干扰,javascript,html,range,Javascript,Html,Range,我在HTML页面中有一个范围输入,它实际上代表一个音乐时间轴。我得到了一个脚本,它可以随着音乐的进行沿滑块移动手柄。 现在,我希望能够移动手柄,以便在我用鼠标设置手柄的位置播放音乐。 问题是,当我开始沿滑块拖动控制柄时,一旦脚本更新了其位置,它就会被设置为实际位置,我将失去对它的控制。 我如何修复它,以便可以自由移动手柄? 为了播放音乐,我使用了一个插件soundmanager2,我使用提供的whileplaying回调函数来设置滑块在音乐播放过程中的位置 以下是HTML位: 00:00/00

我在HTML页面中有一个范围输入,它实际上代表一个音乐时间轴。我得到了一个脚本,它可以随着音乐的进行沿滑块移动手柄。
现在,我希望能够移动手柄,以便在我用鼠标设置手柄的位置播放音乐。
问题是,当我开始沿滑块拖动控制柄时,一旦脚本更新了其位置,它就会被设置为实际位置,我将失去对它的控制。
我如何修复它,以便可以自由移动手柄?
为了播放音乐,我使用了一个插件soundmanager2,我使用提供的
whileplaying
回调函数来设置滑块在音乐播放过程中的位置

以下是HTML位:


00:00/00:00

以及随之而来的JS:

//这是包含在正在创建的对象中的回调函数
whileplaying:function(){
//整个程序块处理“位置/持续时间”显示
var dur=parseInt(this.duration/1000,10);
var-durMin=parseInt(dur/60,10);
var durSec=dur%60;
var pos=parseInt(this.position/1000,10);
var posMin=parseInt(pos/60,10);
var posSec=pos%60;
if(posMin<10)
{
posMin=“”+“0”+posMin.toString();
}
如果(可能性<10)
{
posSec=“”+“0”+posSec.toString();
}
如果(durMin<10)
{
durMin=“”+“0”+durMin.toString();
}
如果(durSec<10)
{
durSec=”“+“0”+durSec.toString();
}
var displayDur=durMin.toString()+“:”+durSec.toString();
var displayPos=posMin.toString()+“:”+posSec.toString();
g(“timeCpt”).innerHTML=displayPos+“/”+displayDur;
//这是负责移动把手的部分
var curPos=parseInt(pos/dur*1000,10);
g(“时间范围”).innerHTML=“”;
//问题是,当我拖动它时,它会移动手柄,然后我失去控制,不得不再次抓住它
//如何避免这种情况?
}

感谢您花时间阅读本文,并提前感谢您的回答。

事实上,我可能已经找到了解决问题的方法。
我可以在触发onclick事件时禁用移动范围的脚本,直到触发onrelease事件(完全不确定事件名称,但我想知道它们到底是什么)。
我要试试这个,让线程保持最新

编辑:这很有效

  • 创建一个布尔变量
  • 用布尔变量控制的条件包围脚本的更新部分
  • 当触发滑块的onmousedown事件时,将布尔变量设置为false,这将阻止脚本更新它
  • 当启动onmouseup时,将其设置回true,如果需要,进行一些额外的处理