首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript手风琴函数不会运行吗?

Javascript手风琴函数不会运行吗?
EN

Stack Overflow用户
提问于 2014-06-05 15:14:16
回答 1查看 69关注 0票数 0

我刚开始写Javascript,所以我试着写我自己的简单手风琴功能。我试着做,所以当我点击h2,它显示“手风琴-#”div。如果手风琴已经打开("display=block"),我想隐藏它("display=none")。当我点击h2时,什么都不会发生。我到处搜索,但我不知道我的代码有什么问题:

代码语言:javascript
复制
function initiate(i) {
    var selected = document.getElementById('accordion-'+i).style.display;
    if(selected == "block") {
        selected = "none";
    } else {
    selected = "block";
    }
}

示例HTML

代码语言:javascript
复制
<h2 onClick="initiate('6')">Project</h2>
<!-- begin code to hide/show -->
<div id="accordion-6" class="accordion">
    <div class="left">
         <p>left column text</p>
    </div>
    <div class="right">
         <p>right column text</p>
    </div>
</div> <!-- end code to hide/show -->

样本CSS

代码语言:javascript
复制
main {
  margin: auto;
  width: 660px; }

main .accordion {
    padding: 0 10px 30px 10px;
    overflow: auto; }

main .accordion .left {
  width: 200px;
  float: left; }

main .accordion .right {
  width: 420px;
  float: right; }

#accordion-0 {
  display: block; }

#accordion-1 {
  display: block; }

#accordion-2 {
  display: block; }

#accordion-3 {
  display: block; }

#accordion-4 {
  display: block; }

#accordion-5 {
  display: block; }

#accordion-6 {
  display: block; }

#accordion-7 {
  display: block; }

`

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 15:27:28

有几件事--首先,您要创建的变量“选中”不是您所想的那样;它不是一个可以更改为针对源元素的样式属性的对象。它是一个字符串,用于存储该属性的值。要实现您想要的结果,您需要将元素存储为var,然后使用".style.display=“来更改它。就像这样:

代码语言:javascript
复制
var TargetDiv = document.getElementById('accordion-'+i);
    if(TargetDiv.style.display == "block" || TargetDiv.style.display == "") {
        TargetDiv.style.display = "none";
    } 
    else {
        TargetDiv.style.display = "block";
    }

您将看到的另一个更改是,您的IF条件还需要检查空的style.display值;这是因为即使您通过CSS将其设置为“块”,实际的DIV标记上没有“样式”属性,因此style.display在页面加载时是空的(也就是说,当您第一次对给定的DIV运行函数时)。

jsFiddle:http://jsfiddle.net/c46qd/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24063940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档