2012-12-09 30 views
1

我试图创建多个部分并在点击时显示或隐藏它们。所以我有三个id的:section2section2hiddensection2visibleID不更改

请查看this website的非工作代码。点击6年级下的语言艺术链接,然后点击左上角的后退按钮(不在您的浏览器上!)。你会看到它带来了元素,但它仍然是opacity:0什么的。

+3

链接来来去去。请提供可重现的代码示例。 – Brad

+3

ID标识元素。类风格他们。你根本不应该改变id。 – Dennis

+0

@Brad +1,这应该更频繁地说! –

回答

1

首先,当你开发javascript代码时,你需要有一个方法来调试。如果您使用Firefox,则会有一个名为Firebug的插件。如果你使用的是Chrome,它已经被集成。使用它,你会看到你的“后退”函数无法完全执行,因为没有带“6-2”id的元素,并且你正试图访问空对象的属性。 这回答“为什么它失败”的问题。我建议,但要看看这些东西:

  • 基本功能的概念。您可以使用参数 而不是构建“one(),two(),three()”等函数。
  • 基本循环编程。您使用的代码如
    
    .getElementById('6-1')... 
    .getElementById('6-2')... 
    
    使用循环让机器为您工作,不要盲目复制/粘贴。
  • CSS类。而不是改变元素的ID,只需添加一个类 ,例如“隐藏”。然后添加一条规则,如
    .hidden{display:none;}
    当您拿走课程时,该元素将重新出现,因为该规则将不再适用。
+0

谢谢,但我是初学javascript的,我不知道如何使用参数或循环 –

+0

也,我补充了其余部分(6-2, 6-3等),但它仍然不起作用。 –

+0

以及如何向元素添加或移除类? –

0

当您按下后退按钮时,初始部分保留为ID section2hidden。应该改回section2

+0

我不能因为它会再次播放动画 –

2

你的代码似乎在寻找一个不存在的div时会停滞不前。

document.getElementById('6-2') 

导致错误cannot read property 'style' of null