javascript - 在 react-bootstrap 中的元素上发起点击事件
问题描述
使用 querySelectorAll 搜索具有 class 的项目.collapse
。他向我展示了三个要素。然后遍历这三个元素并查找具有.show
该类的元素。当他使用时,console.log (el.children [0])
他应该给我看一个元素,给我看几个。我想在第一个元素上发起点击事件el.children [0] .click ()
class App extends Component {
constructor() {
super();
}
closeCollapse = () => {
var x = document.querySelectorAll(".collapse");
console.log(x);
if(x.length){
for(var i=0; i<x.length; i++) {
setTimeout(function () {
var el = document.querySelector(".show");
console.log(el);
el.children[0].click();
}, 100);
}
}
}
render() {
return (
<div>
<Accordion defaultActiveKey="0">
<Card>
<Card.Header>
<Accordion.Toggle as={Button} variant="link" eventKey="0">
Click me!
</Accordion.Toggle>
</Card.Header>
<Accordion.Collapse eventKey="0">
<Card.Body>Hello! I'm the body</Card.Body>
</Accordion.Collapse>
</Card>
<Card>
<Card.Header>
<Accordion.Toggle as={Button} variant="link" eventKey="1">
Click me!
</Accordion.Toggle>
</Card.Header>
<Accordion.Collapse eventKey="1">
<Card.Body>Hello! I'm another body</Card.Body>
</Accordion.Collapse>
</Card>
</Accordion>
<button className="button" onClick={this.closeCollapse}>Close</button>
</div>
);
}
}
CSS
.collapse {
display: none !important;
}
.show {
display: block !important;
}
解决方案
点击处理程序在此处记录。请注意,该示例将 React Hooks 用于 Button,但过程是相同的。
function Example() {
const [open, setOpen] = useState(false);
return (
<>
<Button
onClick={() => setOpen(!open)}
aria-controls="example-collapse-text"
aria-expanded={open}
>
click
</Button>
<Collapse in={open}>
<div id="example-collapse-text">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus
terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer
labore wes anderson cred nesciunt sapiente ea proident.
</div>
</Collapse>
</>
);
}
render(<Example />);
推荐阅读
- python - 循环输出到列表或 numpy 数组,也是 NoneTypeError
- duplicates - 使用 COUNT 和 MIN 删除查询。微软访问 2010
- javascript - 可折叠树图 v4 和 Internet Explorer
- javascript - ESLint 抱怨 TypeScript 类型声明在声明之前使用了类型
- erlang - 无法按照牛仔指南开始监听服务器
- sql - 带有连接的单个表的 SQL 总和
- c - 生成一组可以在不保留白名单的情况下进行验证的唯一密钥
- mysql - 更新触发器后的 SQL
- java - 未找到 Apache POI 工作簿类
- ruby - 尝试在本地向 dynamo db 发出请求并收到此错误“读取服务器你好 A:未知协议”