
Originally Posted by
vlbknl2
Help me!
Here's one way that it might be done.
HTML Code:
<html>
<head>
<link type="text/css" rel="stylesheet" href="style.css">
</head>
<body>
<div id="nav">
<a href="#m1">Menu1</a> || <a href="#m2">Menu2</a>
</div>
<ul id="m1">
<li>Link1</li>
<li>Link2</li>
</ul>
<ul id="m2">
<li>Link3</li>
<li>Link4</li>
</ul>
<script src="script.js"></script>
</body>
</html>
Code css:
.hidden {
display: none;
}
Code javascript:
function hideSections(menu) {
var links = menu.querySelectorAll('a'),
i,
id;
for (i = 0; i < links.length; i += 1) {
id = links[i].href.split('#')[1];
document.getElementById(id).className = 'hidden';
}
}
function showSection(link) {
var id = link.href.split('#')[1];
document.getElementById(id).className = '';
}
function handleLinkEvent(callback) {
return function (evt) {
evt = evt || window.event;
var targ = evt.target || evt.srcElement;
if (targ.nodeType === 3) {
// fix Opera textnode bug
targ = targ.parentNode;
}
if (targ.nodeName === 'A') {
callback.call(this, targ);
}
return false;
};
}
var nav = document.getElementById('nav');
nav.onclick = handleLinkEvent(function (targ) {
hideSections(this);
showSection(targ);
});
hideSections(nav);
Bookmarks