繁体   English   中英

单击另一个DIV时如何使DIV消失?

[英]How do I get DIV to disappear when another DIV is clicked?

我有下面的代码很好用! 当我单击链接1时,将显示DIV内容。 当我再次单击它时,它消失了。 如果再次单击“链接1”,则DIV内容再次出现。 如果我这次单击链接2,则内容将与链接1内容一起出现。 如果要单击另一个DIV链接,我希望链接1消失。 我不想在打开另一个内容之前先关闭该内容。 单击另一个后,如何使DIV消失?

使用Javascript:

function show(ele)    {      
    var srcElement = document.getElementById(ele);      
    if(srcElement != null)      {         
      if(srcElement.style.display == "block")         {      
        srcElement.style.display= 'none';       
      }         
      else         { 
        srcElement.style.display='block';         
      }      
    }   
    return false;
  }

DIV:

<a href="#" onclick="show('link1')">FIRST LINK</a> 
<a href="#" onclick="show('link2')">SECOND LINK</a>

<div id="link1" style="display:none">
   <p>Link 1 Content Displayed</p>
</div>

<div id="link2" style="display:none">
   <p>Link 2 Content Displayed</p>
</div>

我不想改变执行此操作的方式,我觉得有一个简单的解决方案,只是想不通! 任何帮助表示赞赏。

另一个更好的答案是使用jQuery,因为它使您可以编写更好的javascript,而不必担心IE是否会崩溃。

将此标签放在头部:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

使用Javascript:

function show( elem )
{
    $('.dynamic_link').hide();
    $('#'+elem).show();
}

HTML:

<a href="#" onclick="show('link1')">FIRST LINK</a> 
<a href="#" onclick="show('link2')">SECOND LINK</a>

<div id="link1" class="dynamic_link" style="display:none">
   <p>Link 1 Content Displayed</p>
</div>

<div id="link2" class="dynamic_link" style="display:none">
   <p>Link 2 Content Displayed</p>
</div>

Javascript(已修改):

 function show(ele)    {      
    var links = ['link1','link2'];
    var srcElement = document.getElementById(ele);      
    var doShow = true;
    if(srcElement != null && srcElement.style.display == "block")
        doShow = false;
    for( var i = 0; i < links.length; ++i )    {
        var otherElement = document.getElementById(links[i]);      
        if( otherElement != null )
            otherElement.style.display = 'none';
    }
    if( doShow )
        srcElement.style.display='block';         
    return false;
  }

工作示例: http : //jsfiddle.net/vDKmA/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM