jquery mousewheel插件:如何每次滚动只触发一个函数

时间:2011-01-04 16:52:56

标签: jquery mousewheel

我正在使用一个moushweel插件,因为我希望我的用户每次向上或向下滚动时都会触发一个动作,但我不想要多次激发(如果你有一个苹果魔法鼠标,那就更糟了因为太敏感了)

关于如何预防它的任何想法?

这是代码

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;
        });
});

这是插件页面 http://brandonaaron.net/code/mousewheel/demos

2 个答案:

答案 0 :(得分:1)

您可以尝试使用window.setTimeout。也许通过拉出你的嵌套函数并使用带有计时器的代理函数。示例:

var timer; 

function proxyFunction(){
  clearTimeout(timer);
  timer = setTimeout("mouseWheelAction", 1);
}

这不会停止事件触发,但每次事件触发时都会阻止你的函数运行。

答案 1 :(得分:0)

哎呀,得到了它。 如果您正在运行动画,请使用.stop()作为前缀 所以它会读到

$('#findme').stop().animate(...);