xuefine 2021-09-18 11:56 采纳率: 66.7%
浏览 49
已结题

点击A标签显示div后必须再点击一下当前A标签关闭div,才能点击其他A标签,请问该怎么实现

  • 写回答

1条回答 默认 最新

  • 前端不释卷leo 前端领域新星创作者 2021-09-18 12:43
    关注

    可以这样做
    第一,你先给所有A标签父元素(要求必须必须是同一个父元素)加一个id,如parentId
    第二,然后在window.onload之后获取这个父元素,绑定监听事件,el.addEventListener('click',funcrion(e){
    .....
    })
    第三,在监听点击事件里面的回调函数里面获取到所有A标签元素,遍历所有,判断style.dispaly,如果有一个为block,就另flag为1,然后退出循环
    第四,如果flag为1,则判断当前点击元素的的style.display是否为block,如果是,说明当前点击的正是显示的A标签,则让其style.display为none,如果不是,则说明当前显示的跟当前点击的不是同一个标签,不做任何处理
    第五,如果flag不是1,则说明没有A标签是显示的,则让当前点击的A标签的style.display为block即可
    大致思路就是这样,还能优化,如果有帮助,请采纳,如果不理解,请联系我
    涉及知识点:选择器,DOM操作,事件冒泡,事件委托

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 9月18日

悬赏问题

  • ¥20 C# TCP服务端,客户端退出后,不断有数据进来
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?