Click here to Skip to main content
15,920,468 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi All,

I have 3 link buttons and 3 division tags on page.

I have to show one div at a time.

I mean when i click on 1st link then only 1st div should be displayed and rests 2 div tags will get hidden.

When i click on 2nd link then 2nd div will get displayed and rests should be hidden.

Below is my Javascript function :-


JavaScript
function ShowOrHidePanel(div_id)
{
    $("#" + div_id.id).toggle();   
}

<a id="lnk_skills" onclick="ShowOrHidePanel(div_1); return false;" href="javascript:ShowOrHidePanel(div_1);"></a>

<a id="lnk_tech" onclick="ShowOrHidePanel(div_2); return false;" href="javascript:ShowOrHidePanel(div_2);"></a>

<a id="lnk_user" onclick="ShowOrHidePanel(div_3); return false;" href="javascript:ShowOrHidePanel(div_3);"></a>

<div id = "div_1"></div>
<div id = "div_2"></div>
<div id = "div_3"></div>


What I have tried:

I tried with above function by passing div id. But it's hiding 1 div and 2 divs are still showing.
Posted
Updated 10-Jan-18 2:15am

try

<html>
<head>
    <style>
        #div_1, #div_2, #div_3 {
            display: none;
        }
    </style>
    <script>
        function ShowOrHidePanel(div_id) {
            var divs = ['div_1', 'div_2', 'div_3'];
            for (var i = 0; i < divs.length; i++) {
               document.getElementById( divs[i]).style.display = 'none';
            }
            document.getElementById(div_id).style.display = 'block';
        } 
    </script>

</head>
<body>
    <a id="lnk_skills" href="javascript:ShowOrHidePanel('div_1');">1</a>
    <a id="lnk_tech" href="javascript:ShowOrHidePanel('div_2');">2</a>
    <a id="lnk_user" href="javascript:ShowOrHidePanel('div_3');">3</a>
    <div id="div_1"> div1</div>
    <div id="div_2">div2</div>
    <div id="div_3">div3</div>
</body>
</html>


Demo:Plunker[^]
 
Share this answer
 
v2
You're only toggling the div for the link that was clicked, what you need to do is not only show the div you want but hide the others. Lots of ways to do this, but one is to mark the divs you want to be a part of the toggling so you can target them to be hidden.

<script type="text/javascript">
    function ShowOrHidePanel(div_id)
    {
        $("[data-type='toggleDiv']").hide();
        $("#" + div_id.id).show();   
    }
</script>

<div id = "div_1" data-type="toggleDiv">Div 1</div>
<div id = "div_2" data-type="toggleDiv">Div 2</div>
<div id = "div_3" data-type="toggleDiv">Div 3</div>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900