javascript - 无法获取隐藏类以使用 jquery 显示

标签 javascript jquery css element hidden

我正在 codepen 上开发一款井字游戏,并创建了我自己的模式。第一个模态效果很好,可以正确出现和消失。我的第二个模式有一个设置不透明度和可见性的类,以便元素像第一个一样不可见。不同之处在于,当我删除隐藏元素的类时。该元素未出现。

我相信我之前读过这与 jquery 不知道被隐藏的元素有关。我不记得如何修复它,也找不到其他类似的问题。我想知道为什么第一个元素有效而第二个元素无效?我放置了一些相关的上下文代码和整个内容的链接。

This is the codepen link

    hasWon(){
      let scores = this.scoring();
      console.log(scores);
      let win = $('.popup.end');
      for(let i = 0; i < scores.length; i++){
        let win = $('.end');
        if(scores[i] === 3 || scores[i] === -3){
          if(this.player === 1 && scores[i] === 3 
             || this.player === -1 && scores[i] === -3){
            win.html("<h4>Player won the Game!</h4>");
          } else {
            win.html("<h4>Computer won the Game!</h4>");
          }
          $('.back').removeClass('showEl');
          win.classList.remove("hideEl");
        }
      }
      if(this.emptyIndices().length === 0){
        win.html("<h4>It's a draw!</h4>");
        $('.back').removeClass('showEl');
        // THIS SHOULD ACTIVATE SECOND MODAL! 
        win.classList.remove("hideEl");
      }
    }
.popup {
  font-family: 'Signika', 'sans-serif';
  margin: 100px auto 0 auto;
  width: 600px;
  height: 270px;
  background: #d0e6d0;
  border: 6px solid #97b097;
  box-shadow: 0px 0px 1000px 2000px rgba(228, 241, 228, 0.9);
  border-radius: 60px;
  position: relative;
  z-index: 1;
  visibility: visible;
  opacity: 1;
  transition: all .5s;
}

.popup h4 {
  padding-top: 60px;
  font-weight: bold;
  font-size: 2.5em;
  left: 13%;
  position: absolute;
}

.hideEl {
  opacity: 0;
  visibility: hidden;
}

.showEl {
  opacity: 1;
  visibility: visible;
}
<div class="popup end hideEl">
  <h4>Ending Message</h4>
</div>

最佳答案

您的 jquery 代码很棒而且很完美,除了 html 有问题。您没有使用 class - .popup.who 关闭 div 这就是 div 的原因class - .popup.end 最终会用 .popup.who - div 包装,当你完成第一个模态后hide .popup.who - div,它实际上也隐藏了 .popup.end,因为同样是包裹在 .popup.who - div 中。

错误代码

<div class="popup who">
  <h4>Do you want to play as X or O?</h4>
  <button type="button" class="btn btn-lg btn-primary choose_x player">X</button>
  <button type="button" class="btn btn-lg btn-primary choose_o player">O</button>
<div> <!--This here wasn't ending the div-->

<div class="popup end hideEl">
  <h4>Ending Message</h4>
</div>

更正代码

<div class="popup who">
  <h4>Do you want to play as X or O?</h4>
  <button type="button" class="btn btn-lg btn-primary choose_x player">X</button>
  <button type="button" class="btn btn-lg btn-primary choose_o player">O</button>
</div>

<div class="popup end hideEl">
  <h4>Ending Message</h4>
</div>

UPDATED CODEPEN

关于javascript - 无法获取隐藏类以使用 jquery 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37559338/

相关文章:

javascript - Angular JS 在每次请求时都会传递 App ID 和 Key

javascript - jQuery 代码未使用 $(function(){...}); 运行;但没有它也会运行

javascript - 根据输入值增量更改按钮颜色

css - 在容器中居中放置 2 个 div(向左、向右浮动)

css - 使用 CSS 定位第一个标签

javascript - 在JavaScript中使用“原型(prototype)”还是“this”?

javascript - 在 Firebase 中通过键查找对象

jquery - 使用 $.post 将对象集合传递到 MVC Controller

javascript - ExtJS 6 - 快速水平滚动时,列标题和数据未正确对齐

javascript - 如何使按钮在网格中不可见和可见?