Javascript 单击addClass selected,在滚动条上否决addClass

Javascript 单击addClass selected,在滚动条上否决addClass,javascript,jquery,scroll,offset,addclass,Javascript,Jquery,Scroll,Offset,Addclass,我发现自己遇到了一个问题,我认为这个问题很容易解决,但我看不到。。。我有两个函数来添加一个名为selected的类,该类突出显示按钮 一个函数删除选定的类(如果存在),并将该类添加到单击的按钮: var sidebarLinks = $('.js-sidebar a'); // About section: Remove and add class on click sidebarLinks.on('click', function() { sidebarLin

我发现自己遇到了一个问题,我认为这个问题很容易解决,但我看不到。。。我有两个函数来添加一个名为
selected
的类,该类突出显示按钮

一个函数删除选定的类(如果存在),并将该类添加到单击的按钮:

var sidebarLinks = $('.js-sidebar a');

    // About section: Remove and add class on click
    sidebarLinks.on('click', function() {
        sidebarLinks.removeClass('selected');
        $(this).addClass('selected');
    });
如果用户决定滚动而不是单击按钮,则另一个函数将添加所选的类。这些按钮将在确定的页面偏移量中突出显示:

    var buttonOne = $('.buttonOne');
    var buttonTwo = $('.buttonTwo');
    var buttonThree = $('.buttonThree');


// Select nav buttons if scrolling and not clicking the button
    $(window).scroll(function () {

        // About nav sidebar links
        var buttonOne = $('.js-polspotten-sidebar');
        var buttonTwo = $('.js-product-sidebar');
        var buttonThree = $('.js-designers-sidebar');

        // About sections top scroll position
        var currentTopPosition = $(this).scrollTop();
        var productsTopPosition = $('#products').offset().top;
        var designersTopPosition = $('#designers').offset().top;


        // polspotten selected depending on scroll position
        if (currentTopPosition >= currentTopPosition && currentTopPosition < productsTopPosition) {
            buttonOne.addClass('selected');
        }
        else{
            buttonOne.removeClass('selected');
        }

        // products selected depending on scroll position
        if (currentTopPosition >= productsTopPosition &&
            currentTopPosition < designersTopPosition) {
            buttonTwo.addClass('selected');
        }
        else{
            buttonTwo.removeClass('selected');
        }

        // designers selected depending on scroll position
        if (currentTopPosition >= designersTopPosition) {
            buttonThree.addClass('selected');
        }
        else{
            buttonThree.removeClass('selected');
        }

    });
var buttonOne=$('.buttonOne');
var buttonTwo=$('.buttonTwo');
var buttonThree=$('.buttonThree');
//如果滚动且未单击按钮,请选择导航按钮
$(窗口)。滚动(函数(){
//关于导航侧栏链接
var buttonOne=$('.js polspotten边栏');
var buttonTwo=$('.js产品边栏');
var buttonThree=$('.js设计器边栏');
//关于节顶部滚动位置
var currentTopPosition=$(this.scrollTop();
var productsTopPosition=$('#products').offset().top;
var designersTopPosition=$('#designers').offset().top;
//根据滚动位置选择polspotten
如果(currentTopPosition>=currentTopPosition&¤tTopPosition=产品停止位置&&
currentTopPosition=DesignerTopPosition){
ButtontTree.addClass('selected');
}
否则{
ButtontTree.removeClass('selected');
}
});
问题是,在单击事件创建滚动时,两者同时交互

我想要的是,如果有人点击按钮,滚动功能将无法工作。只有当用户自己滚动时,它才会工作


这可能吗?

如果单击按钮触发滚动,从而更新类,为什么不只使用滚动事件,而不使用单击事件?@ZiNNED我希望将这两个功能分开。这样,一旦页面滚动到确定的点,导航就会显示其活动状态。否则,在滚动过程中,按钮将在滚动时高亮显示,这显示了一种非预期的效果。只需注意,在第一个
if
条件中,您具有
if(currentTopPosition>=currentTopPosition…
,这将始终为真。