Anchor标签中的功能不起作用

时间:2012-10-27 06:48:10

标签: javascript html html5

所以我有几个功能:

function Toggle(id)
{
   EToggle(document.getElementById(id));
}

function EToggle(element)
{
   var subject = element.getElementsByTagName("div")[0];
   if(subject.style.display == "none")
   {
      subject.style.display = "block";
   }
   else
   {
      subject.style.display = "none";
   }
}

在加载时调用Toggle函数,并且工作正常。但是,当我说
 <a href="javascript:Toggle(flat)">,没有任何反应。

所以问题是,为什么它不在链接中工作,而是在页面加载?

如果您需要更多详细信息,here是我的网站。

2 个答案:

答案 0 :(得分:3)

使用

<a href="javascript:Toggle('flat')">

而不是

<a href="javascript:Toggle(flat)">

答案 1 :(得分:1)

首先,正如Matei所提到的,在html中的id-strings周围使用单引号。

接下来,更改collapsible.js的第31行

您要求点击的元素包含第一个div。问题是,你的&lt; a&gt;标签本身没有任何。你在跟随的&lt; a&gt;之后的div之后所以,你想得到父节点的div元素。

var subject = element.parentNode.getElementsByTagName("div")[0];

请记住,您的结构是这样的:

<div class="collapsible" id="demo">
    <a href="javascript:Toggle('demo')"><h1>Demolition and Removal</h1></a>
    <div style="display: none; ">
        <p>Content removed from here</p>
    </div>
</div>