0

我正在使用 mootools 为 Youtube chromeless 播放器创建 CSS 皮肤,使用 javascript API 来控制播放。不幸的是,我无法发布代码。我的问题是一个更普遍的问题。使用滑块插件时,调用 mySlider.set(step) 会将旋钮移动到滑块上的正确步长,但它会触发所有插件事件函数(onChange、onTick、onComplete)。问题在于,您如何知道滑块旋钮位置是由用户更改还是由 set() 函数更改?我原以为只有当旋钮被鼠标释放时才会保留一个函数,如果位置只是在代码中设置,则不会被调用。我有根据视频播放持续时间当前所在的位置更新旋钮位置的代码。

为了简化问题,有没有办法在代码中设置滑块上的旋钮位置而不触发用户交互时使用的功能?

您可以在此处找到 Slider 插件参考http://mootools.net/docs/more/Drag/Slider

谢谢

4

2 回答 2

1

我遇到了这个问题并最终这样做了

var slider = new Slider(track,knob, {
    onChange: function(){
        console.log("doesn't fire after autosize()");
    }
});

// fake .set(); 
slider.step = 50;  // new value
slider.autosize(); // redraw the knob
于 2012-03-30T22:41:19.480 回答
0

创建一个变量,表明您正在以编程方式设置它,然后如果变量是true.

然后,每次在代码中设置滑块时,将变量设置为truefirst,然后返回块中false的后记finally

于 2009-09-14T15:53:33.010 回答