Estoy intentando hacer un script con jquery que me permita agregar una classe a un elemento en un menu cuando éste este activo.
Este es el html, es bastante simple:
Código HTML:
<div id="menu"> <ul> <li><a href="pagina1.html">pagina 1</a></li> <li><a href="pagina2.html">pagina 2</a></li> <li><a href="pagina3.html">pagina 3</a></li> </ul> </div>
.selected {background: #fff;}
Y mi script se ve asi:
Código PHP:
$(document).ready(function () {
$("#menu a").click(function() {
var path = this.getAttributes('href');
$("#menu a").removeClass('selected');
$(this).toggleClass('selected');
});
});
Hize una prueba con javascript comun y corriente el cual funciona perfectamente pero no se como 'traducir' ese script a jquery.
script normal:
Código PHP:
function addLoadEvent(func) {
var oldonload = window.onload;
if(typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function insertAfter(newElement, targetElement) {
var parent = targetElement.parentNode;
if(parent.lastChild == targetElement) {
parent.appendChild(newElement);
} else {
parent.insertBefore(newElement, targetElement.nextSibling);
}
}
function addClass(element, value) {
if(!element.className) {
element.className = value;
} else {
newClassName = element.className;
newClassName+= " ";
newClassName+= value;
element.className = newClassName;
}
}
function highlightPage() {
if (!document.getElementsByTagName) return false;
if (!document.getElementById) return false;
if (!document.getElementById("menu")) return false;
var nav = document.getElementById("menu");
var links = nav.getElementsByTagName("a");
for (var i=0; i<links.length; i++) {
var linkurl = links[i].getAttribute("href");
var currenturl = window.location.href;
if(currenturl.indexOf(linkurl) != -1) {
links[i].className = "selected";
}
}
}
addLoadEvent(highlightPage);