jquery - 防止滚动时触发多次点击事件

标签 jquery scroll

我正在尝试触发滚动上的点击事件。就像滚动顶部的左侧导航和向下滚动的右侧导航一样,我试图通过

来实现它
$('#elem').bind('mousewheel', function(e){
     if(e.delta < 0) {
         //scroll left
         $(".left-nav").trigger("click");
     }else {
         //scroll right
         $(".left-nav").trigger("click");
     }
     return false;
 }); 

但是点击事件被触发多次。请帮助我无论滚动速度如何,仅触发一次点击事件。

提前致谢

最佳答案

试试这个:

var busy = false;
$('#elem').bind('mousewheel', function(e){
    if (!busy) {
        busy = true;
        if(e.delta < 0) {
           //scroll left
           $(".left-nav").trigger("click");
        } else {
           //scroll right
           $(".left-nav").trigger("click");
        }
    }
 return false;
 }); 

然后,当您的点击功能完成时,将“busy”设置为“false”

关于jquery - 防止滚动时触发多次点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993419/

相关文章:

javascript - jQuery - 计算元素进入视口(viewport)时的滚动比率?

jquery - 如何在 jQuery 中检测水平滚动?

jquery - 滚动到一个 div

html - 为页面内的链接添加边距

javascript - 为什么图像显示空间并向右走,应该是填补空白

java - 将 ScrollView 和 Horizo​​ntalScrollView 添加到 TableLayout

javascript - .ajaxStop 回调函数被多次执行

jQuery 获取与类最接近的 div

javascript - 您如何建议我根据选择的选项显示不同的表单?

javascript - 在固定标题上平滑滚动