jQuery隐藏/显示的问题

时间:2015-12-23 04:22:19

标签: javascript jquery

我在jQuery中遇到一些隐藏/显示功能的问题,我似乎无法弄明白。我有一个if / else语句,它检查我的HTML中的数据属性,然后根据它的结果隐藏/显示元素。我已经能够记录整个功能,并且它应该触发正确的语句,但我遇到的问题是让内容在隐藏后再次出现。它隐藏得很好,但永远不会回来。这是代码:

  var bar = $("#alert");
      if (!supressed) {
        bar.animate({height:0});
        bar.parent().animate({height:0}, function() {
          $(this).hide()
        });
      }

       if (supressed) {
       console.log("Supressing");
       bar.replaceWith(newBar);
       bar.parent().animate({height: "45px"}, function() {
         $(this).show()
       });
       bar.animate({height: "45px"});
     }

问题出现在console.log("Supressing");语句的位置。它将它记录到控制台,所以我知道它正在工作,但由于某种原因,条形图根本没有出现。

如果我执行检查元素,我仍然可以看到#alert的父级仍然有style="height: 0px; display: none;"

我哪里错了?

1 个答案:

答案 0 :(得分:0)

问题是您使用replaceWith函数(else语句后的第一行)。然后在从DOM中删除元素后调用bar.parent()。

也许你想说

newBar.parent().animate({height: "45px"}, function() {
  $(this).show()
});