问题
i'm using a moushweel plugin because i want my user to fire an action everytime it scroll up or down, but i dont want to have multiples fires (if you have a apple magic Mouse it is even worse because is too sensitive)
any idea on how to prevent it?
this is the code
jQuery(function($) {
$('div.mousewheel_example')
.bind('mousewheel', function(event, delta) {
var dir = delta > 0 ? 'Up' : 'Down',
vel = Math.abs(delta);
$(this).text(dir + ' at a velocity of ' + vel);
return false;
});
});
this is the plugin page http://brandonaaron.net/code/mousewheel/demos
回答1:
You could try playing with window.setTimeout. Maybe by pulling out your nested function and using something a proxy function with a timer. Example:
var timer;
function proxyFunction(){
clearTimeout(timer);
timer = setTimeout("mouseWheelAction", 1);
}
This will not stop the event firing but it will stop your function from running everytime the event fires.
回答2:
Sicck, got it. If you are running an animation inside just preface it with .stop() So it would read
$('#findme').stop().animate(...);
来源:https://stackoverflow.com/questions/4596158/jquery-mousewheel-plugin-how-to-fire-only-one-function-every-scroll