I am trying to toggle between two divs. For example, onload, I want the left content to show and the right content will remain hidden. If I click the right div, I want the left content to hide and the right content to appear and vise versa. I am very new to javascript but here is what I have. I can't seem to get it to work. Please help...
Here is my HTML code:
<div onclick="toggle_visibility('left');">
Left
</div>
<div onclick="toggle_visibility('right');">
Right
</div>
<div id="left" style="display: block;">
This is the content for the left side
<div>
<div id="right" style="display: none;">
This is the content for the ride side
</div>
Here is the Javascript I am using:
<script type="text/javascript">
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
</script>
Here is a small example that toggles between two html documents. The function is first called when the body loads. U need to replace 1.html and 2.html with the two pages you want to flip between. If you want a longer delay, replace 3000 with whatever u want. the timer value is in milliseconds, so if you want 20 seconds its 20000.
Live demo: http://jsfiddle.net/PauWy/1/
HTML:
JavaScript:
CSS (to hide the right DIV onload):
Put the JavaScript code at the bottom of the page.
Notice how the SCRIPT element is located at the end of the BODY element. Also, notice that the jQuery code should be inside the ready handler:
$(function() { ... code ... });
For starters, the closing tag for is missing. Pesky things, those.
Second, you need to keep track of the current visible div so that you can hide it. The following should work.
Since u tagged the question
jquery
ill assume your open to a jquery solution. It will make this very simple. Check out the sample jsfiddle below...http://jsfiddle.net/VztjL/
of course you will need some css for styling but clicking the div in the sample will switch between the two divs
You are only toggling the visibility for 1 of the 2 elements each time. When you click on the left, it's going to disappear, but you didn't tell the right side to appear. Try: