css - 如果用户在 div 外部单击,我们如何更改状态

标签 css reactjs

我有 3 个格。这将表现得像选择框。 第一个选择框将打开第一个列表项并关闭第二个和第三个列表项 第二个选择框将打开第二个列表项并关闭第一和第三个列表项 第三个选择框将打开第三个列表项并关闭第一和第二个列表项

我需要如果用户点击元素的侧面或选择框,那么第一个、第二个和第三个元素列表应该关闭。

我附上了`

screen shot

/image/VrTAA.png

提前致谢

onlocationClick = () => {
    let currentlocationblock = this.state.openLocation;
    this.setState({
        openLocation: !currentlocationblock,
        openage: false,
        opengender: false,
        clearAllUncheck: true,
    })
}
onageClick = () => {
    e.preventDefault();
    let currentageblock = this.state.openage;
    this.setState({
        openLocation: false,
        openage: !currentageblock,
        opengender: false,
        clearAllUncheck: true,
    })
}
ongenderClick = () => {
    let currentgenderblock = this.state.opengender;
    this.setState({
        opengender: !currentgenderblock,
        openage: false,
        openLocation: false,
        clearAllUncheck: true,

    })
}

最佳答案

您可以通过为相关的 div 指定 -1 的 tabIndex 来做到这一点,这样它们就可以以编程方式获得焦点,而无需成为选项卡选择的一部分。之后,您可以只使用 css 随意操作它们。您可以在 codesandbox 中看到这方面的示例.

关于css - 如果用户在 div 外部单击,我们如何更改状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57976544/

相关文章:

javascript - 如何在 React TDD 中使用 jest 和 Enzyme 测试组件的状态是否被函数更改

reactjs - HashRouter 与 BrowserRouter 组合

css - 如何居中 Bootstrap 复选框表单

javascript - 使用 JavaScript 更改背景颜色

CSS 如何将 div 中的 div 与同级 div 垂直对齐(内联 block )

html - 将内容包装在 div 中

python - 通过 Flask-Python 为 React 生产应用程序(本地服务器)提供服务

javascript - setState 回调函数没有被调用?

javascript - 空对象从无处传递到 Prop 上

javascript - 如何根据屏幕宽度将我的导航栏类更改为另一个导航栏类?