【问题标题】:Scroll event getting fired on top element as well as on the bottom element滚动事件在顶部元素和底部元素上触发
【发布时间】:2019-09-25 20:57:50
【问题描述】:

我将AutoSizer 用于我的应用程序中的一个用例。在 Autosizer 代码中,它们更改了 scrollTop,因此触发了滚动事件。当滚动事件被捕获(而不是冒泡)时,如何防止 AutoSizer 中的滚动事件(或仅将事件限制到所需的元素)?我能找到的一种方法是检查事件处理程序中的targetcurrentTarget 是否相同

onScroll = event => {
    if(event.target === event.currentTarget){
        ...do Something
    }
} 

这是正确的方法还是有其他方法? 附言我在我的应用程序中使用react

【问题讨论】:

    标签: javascript reactjs dom react-virtualized


    【解决方案1】:

    如果我理解正确,如果子组件已滚动,您希望防止在父组件上滚动。如果是,请使用e.stopPropagation();

    onScroll = event => {
        event.stopPropagation();
        // ...do Something
    } 
    

    【讨论】:

    • 但是滚动事件被捕获并且没有冒泡。在这种情况下,stopPropagation 没有任何意义
    • @AjayGaur,那么,您的解决方案是正确的。我会用同样的。 useful link
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多