隐藏页面项然后显示时出错

时间:2015-12-16 02:13:31

标签: javascript jquery html css

我试图隐藏页面中的ID,然后在页面上加载了所有javascript后显示。我正在使用的javascript再次显示内容:

$(document).ready(function() {
   $("#HomePage")[0].style.visibility = "visible";
   $('#HomePage').addClass('animated fadeIn'); 
   $("#CategoryPage")[0].style.visibility = "visible";
   $('#CategoryPage').addClass('animated fadeIn'); 
}

和使用的css

#HomePage { visibility:hidden; }
#CategoryPage { visibility:hidden; }

和主页的html

<html>
 <body>
  <section id="HomePage" class="main-content">
   ...
  </section>
 </body>
</html>

和类别页面的html

<html>
 <body>
  <section id="CategoryPage" class="main-content">
   ...
  </section>
 </body>
</html>

这适用于主页 - 最初隐藏div然后显示但是当我出于某种原因进入类别页面时javascript没有运行。我在两个页面上都收到错误,但我不确定这是否会影响它,因为它仍在主页上运行 - 未捕获TypeError:无法读取属性&#39;样式&#39;未定义的。有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

#HomePage上是否存在#CategoryPage?如果我已正确理解您的问题,它会尝试在#HomePage上查找#CategoryPage并确实将其声明为undefined

如果您使用的是jQuery,则以下内容应该可行。

&#13;
&#13;
$(document).ready(function() {
      $("#HomePage").css('visibility', 'visible');
      $('#HomePage').addClass('animated fadeIn');
      $("#CategoryPage").css('visibility', 'visible');
      $('#CategoryPage').addClass('animated fadeIn');
    }
&#13;
&#13;
&#13;

答案 1 :(得分:1)

可能你的问题是访问[0]索引时。如果&#39;#HomePage&#39;或#&#39;#CategoryPage&#39;不存在然后它会抛出错误,因为数组中的第一项不存在。试试这个......

$(document).ready(function() {
   $("#HomePage").css("visibility", "visible"); 
   $('#HomePage').addClass('animated fadeIn'); 
   $("#CategoryPage").css("visibility", "visible"); 
   $('#CategoryPage').addClass('animated fadeIn'); 
}

jQuery会将css()应用于所有匹配的项目(如果没有匹配则不应用)。

相关问题