我已经为此苦苦挣扎了一段时间..我正在使用此代码来监视鼠标滚轮,因此它可以用于使用我拥有的滑块进行滚动..但是,它有一个问题是动作排队所以如果你用鼠标滚轮快速滚动(就像任何人通常会做的那样),它们会堆积起来并导致错误的行为。我知道用动画处理这类问题,但用鼠标滚轮监视器不知道。
我想做一些事情,比如在动作开始时取消绑定鼠标滚轮(在这种情况下,在鼠标滚轮移动后滚动滚动条)然后在此之后重新绑定它,所以如果用户滚动太多太快它只会忽略直到初始滚动完成..我尝试了下面的代码,但它没有重新绑定,所以我不确定我做错了什么,任何建议都值得赞赏。
$("#wavetextcontainer").bind("mousewheel", function(event, delta) {
//HERE IS WHERE EVENT IS UNBOUND:
$("#wavetextcontainer").unbind("mousewheel");
var speed = 10;
var mySlider = $("#slider");
var sliderVal = mySlider.slider("option", "value");
sliderVal += (delta*speed);
if (sliderVal > mySlider.slider("option", "max")) sliderVal = mySlider.slider("option", "max");
else if (sliderVal < mySlider.slider("option", "min")) sliderVal = mySlider.slider("option", "min");
$("#slider").slider("value", sliderVal);
event.preventDefault();
// HERE I WANT TO REBIND THE EVENT:
$("#wavetextcontainer").bind("mousewheel");
});