为了账号安全,请及时绑定邮箱和手机立即绑定

在 React 中单击 on 上的突出显示和取消突出显示 div

在 React 中单击 on 上的突出显示和取消突出显示 div

汪汪一只猫 2022-08-04 16:54:15
我有div,我想用CSS突出显示一个.onClick<div  className={"amount-circle" + (this.state.activeCircle ? ' active' : '')}  onClick={() => this.amountChanged(2)}>    <p>2</p></div><div  className={"amount-circle" + (this.state.activeCircle ? ' active' : '')}  onClick={() => this.amountChanged(5)}>    <p>5</p></div><div  className={"amount-circle" + (this.state.activeCircle ? ' active' : '')}  onClick={() => this.amountChanged(10)}>    <p>10</p></div>我的状态是一个布尔值,在开始时设置为布尔值。activeCirclefalse在我设置为 true。this.amountChanged()activeCircle但问题是,每个div都被突出显示,我没有弄清楚如何在没有.onClickkey
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

所有 div 都变为活动状态的原因是因为它们依赖于同一标志。


这里最正确的解决方案是依靠set amount


假设您在状态金额中设置了所选金额,您将实现如下所示的活动逻辑


<div

  className={"amount-circle" + (this.state.amount == 2 ? ' active' : '')}

  onClick={() => this.amountChanged(2)}>

    <p>2</p>

</div>

<div

  className={"amount-circle" + (this.state.amount == 5 ? ' active' : '')}

  onClick={() => this.amountChanged(5)}>

    <p>5</p>

</div>

<div

  className={"amount-circle" + (this.state.amount == 10 ? ' active' : '')}

  onClick={() => this.amountChanged(10)}>

    <p>10</p>

</div>


查看完整回答
反对 回复 2022-08-04
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

你不能做这样的事情吗?


<div onClick={(e) => e.target.classList.toggle('active')}>

  coucou

</div>


您不会依赖任何标志,只需依靠点击目标。这是对StackBlitz的重现


查看完整回答
反对 回复 2022-08-04
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号