首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >点击一个不属于“close”按钮的单独按钮,无论如何都是close事件

点击一个不属于“close”按钮的单独按钮,无论如何都是close事件
EN

Stack Overflow用户
提问于 2019-06-12 03:24:48
回答 1查看 19关注 0票数 1

我有一个公告栏,其中有一个中心按钮链接到另一个网站。在最右边还有一个“关闭”按钮。当我单击中心按钮时,close按钮也会被触发。

我测试了一下是否因为我将#close div从#bar div中移除,将其封装在内部,但仍然导致了同样的问题。

代码语言:javascript
复制
var closeBar = document.getElementById("close");
var bar = document.getElementById("bar");
if (closeBar) {
  addEventListener('click', function() {
    bar.classList.add('superHidden');
  })
}
代码语言:javascript
复制
#bar {
  position: fixed;
  width: 100vw;
  display: flex;
  height: 50px;
  bottom: 0px;
  left: 0px;
}

ul {
  display: flex;
  justify-content: center;
  height: 100%;
  list-style: none;
}

li {
  margin: auto 0;
  font-size: 22px;
}

#close {
  position: fixed;
  right: 20px;
  bottom: 0;
  z-index: 1000;
  height: 50px;
  width: 25px;
  cursor: pointer;
}

.superHidden {
  display: none!important;
}
代码语言:javascript
复制
<div id="bar">
  <ul>
    <li><a target="_blank" href="google.com"><button >Google</button></a></li>
  </ul>
  <div id="close">
    <ul>
      <li>X</li>
    </ul>
  </div>
</div>

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 03:29:18

您没有为事件侦听器指定目标,因此您将向整个窗口添加一个单击事件

代码语言:javascript
复制
addEventListener('click', function() {
    bar.classList.add('superHidden');
})

如果单击窗口上的任意位置,则会触发此事件。

听起来你只想把事件添加到“关闭按钮”中:

代码语言:javascript
复制
closeBar.addEventListener('click', function() {
    bar.classList.add('superHidden');
})

完整示例:

代码语言:javascript
复制
var closeBar = document.getElementById("close");
var bar = document.getElementById("bar");
if (closeBar) {
  closeBar.addEventListener('click', function() {
    bar.classList.add('superHidden');
  })
}
代码语言:javascript
复制
#bar {
  position: fixed;
  width: 100vw;
  display: flex;
  height: 50px;
  bottom: 0px;
  left: 0px;
}

ul {
  display: flex;
  justify-content: center;
  height: 100%;
  list-style: none;
}

li {
  margin: auto 0;
  font-size: 22px;
}

#close {
  position: fixed;
  right: 20px;
  bottom: 0;
  z-index: 1000;
  height: 50px;
  width: 25px;
  cursor: pointer;
}

.superHidden {
  display: none!important;
}
代码语言:javascript
复制
<div id="bar">
  <ul>
    <li><a target="_blank" href="google.com"><button >Google</button></a></li>
  </ul>
  <div id="close">
    <ul>
      <li>X</li>
    </ul>
  </div>
</div>

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56550512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档