简体   繁体   English

在首页JavaScript中仅显示一个div

[英]Show only one div in main page JavaScript

I am making a project for my school, and I need a main page where I can display all my different divs, but only one at a time and always show one. 我正在为我的学校做一个项目,我需要一个主页,可以显示所有不同的div,但一次只能显示一个,并且总是显示一个。 I dont understand much of js, but I got that code who does the job, but if I click the same button it will hidde it, and I dont want to close it, just to stay in the same div. 我对js不太了解,但是我得到执行此工作的代码,但是如果单击相同的按钮,它将隐藏它,并且我不想关闭它,只是停留在同一div中。

It will act upon itself, my main page. 它会自行作用,即我的主页。

HTML: HTML:

<ul class="sidenav">
  <li><a class="active" href="javascript:void(null)" onclick="showhide('home');">Home</a></li>
  <li><a href="javascript:void(null)" onclick="showhide('forms');">Forms</a></li>
</ul>

CSS: CSS:

div.content {
    margin-left: 20%;
    padding: 1px 16px;
    height: 1000px;
    display: none;
}

JavaScript: JavaScript的:

var divState = {};
function showhide(id) {
    if (document.getElementById) {
        var divid = document.getElementById(id);
        divState[id] = (divState[id]) ? false : true;
        for (var div in divState){
            if (divState[div] && div != id){
                document.getElementById(div).style.display = 'none';
                divState[div] = false;
            }
        }
        divid.style.display = (divid.style.display == 'block' ? 'none' : 'block');
    }
}

1st use var divState = ['home', 'forms']; 1st使用var divState = ['home', 'forms']; hold all your div. 保持所有的div。

2nd when you click hide all other div, show the clicked one. 第二,当您单击“隐藏所有其他div”时,显示被单击的那个。

3rd call showhide('home') on page load. 第三次在页面加载时调用showhide('home')

 div.content { margin-left: 20%; padding: 1px 16px; height: 1000px; display: none; } 
 <ul class="sidenav"> <li><a class="active" href="javascript:void(null)" onclick="showhide('home');">Home</a></li> <li><a href="javascript:void(null)" onclick="showhide('forms');">Forms</a></li> </ul> <div id="home"> home div </div> <div id="forms"> forms div </div> <script> var divState = ['home', 'forms']; function showhide(id) { if (document.getElementById) { var divid = document.getElementById(id); for (var d in divState) { if (divState[d] != id) { document.getElementById(divState[d]).style.display = 'none'; } else { divid.style.display = 'block'; } } } } showhide('home'); </script> 

If you only want to show the div on click, but not hide it when the same link is clicked again, just replace the last line of the showHide() function to always show the div instead of toggling it. 如果您只想在单击时显示div,而又不想在再次单击同一链接时隐藏它,则只需替换showHide()函数的最后一行即可始终显示div而不是切换它。

var divState = {};
function showhide(id) {
    if (document.getElementById) {
        var divid = document.getElementById(id);
        divState[id] = (divState[id]) ? false : true;
        for (var div in divState){
            if (divState[div] && div != id){
                document.getElementById(div).style.display = 'none';
                divState[div] = false;
            }
        }
        divid.style.display = 'block';
    }
}

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

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