meu site tem dois menus com as mesmas propriedades, um no header e outro no footer. Neles eu estou utilizando um script para marcação e desmarcação dependendo o conteúdo na qual está sendo exibido porém somente o menu do header está recebendo o script, o do footer não. Alguém pode me dar um help?
Estou utilizando esse script para tal:
<script>
//função que troca a classe dos li para ativo e inativo
function ativoinativo(quem){
//o 'quem' original é um link, agora estou pegando o li pai
var lipai = quem.parentNode;
if(lipai.className=='ativo'){
//se ele já era ativo vira inativo
lipai.className = 'inativo';
}else{
//se ele não tinha classe ainda, transformo em ativo
lipai.className = 'ativo';
//e também faço seus irmãos li virarem inativos
var irmaosli = lipai.parentNode.childNodes; //pegando os irmaos li
for(var i=0; i<irmaosli.length ; i++){ //varrendo os li
var liatual = irmaosli;
if(liatual != lipai && liatual.nodeName=='LI'){
//se não é o li atual vai virar inativo
irmaosli.className = 'inativo'
}
}
}
}
//função que testa qual li que tem o link atual e marca como ativo
function initAtivoInativo(divalvo){
if(!divalvo.nodeName){
//testando se o divalvo já é um objeto
//se não for, eu uso o velho getElementById
divalvo = document.getElementById(divalvo);
if(!divalvo){ alert('Erro: o divalvo não existe'); return;}
}
//pegando os li que tão dentro do divalvo
var ah,lis = divalvo.getElementsByTagName('li');
for(var i=0; i<lis.length ; i++){
//pegando os links que tão dentro de cada li
ah = lis.getElementsByTagName('a')[0];
if(!ah){ continue; } //se não achou o link vai pro prox li
//ativando o onclick nos links pra fazer a troca de ativo/inativo
Pergunta
Renato E.
Bom dia pessoal,
meu site tem dois menus com as mesmas propriedades, um no header e outro no footer. Neles eu estou utilizando um script para marcação e desmarcação dependendo o conteúdo na qual está sendo exibido porém somente o menu do header está recebendo o script, o do footer não. Alguém pode me dar um help?
Estou utilizando esse script para tal:
<script>
//função que troca a classe dos li para ativo e inativo
function ativoinativo(quem){
//o 'quem' original é um link, agora estou pegando o li pai
var lipai = quem.parentNode;
if(lipai.className=='ativo'){
//se ele já era ativo vira inativo
lipai.className = 'inativo';
}else{
//se ele não tinha classe ainda, transformo em ativo
lipai.className = 'ativo';
//e também faço seus irmãos li virarem inativos
var irmaosli = lipai.parentNode.childNodes; //pegando os irmaos li
for(var i=0; i<irmaosli.length ; i++){ //varrendo os li
var liatual = irmaosli;
if(liatual != lipai && liatual.nodeName=='LI'){
//se não é o li atual vai virar inativo
irmaosli.className = 'inativo'
}
}
}
}
//função que testa qual li que tem o link atual e marca como ativo
function initAtivoInativo(divalvo){
if(!divalvo.nodeName){
//testando se o divalvo já é um objeto
//se não for, eu uso o velho getElementById
divalvo = document.getElementById(divalvo);
if(!divalvo){ alert('Erro: o divalvo não existe'); return;}
}
//pegando os li que tão dentro do divalvo
var ah,lis = divalvo.getElementsByTagName('li');
for(var i=0; i<lis.length ; i++){
//pegando os links que tão dentro de cada li
ah = lis.getElementsByTagName('a')[0];
if(!ah){ continue; } //se não achou o link vai pro prox li
//ativando o onclick nos links pra fazer a troca de ativo/inativo
ah.onclick = function(e){
//pegando o alvo crossbrowser http://elcio.com.br/crossbrowser/#7
if(typeof(e)=='undefined')var e=window.event;
source=e.target?e.target:e.srcElement; //
if(source.nodeType == 3)source = source.parentNode
//ativando o onclick nos links pra fazer a troca de ativo/inativo
ativoinativo(source);
}
if(location.href.indexOf(ah.href)>-1){
//se o endereço atual tem o link do li atual marco ativo
lis.className = 'ativo'
}else{
//senão é inativo
lis.className = 'inativo'
}
}
}
//ativando no onload (mas depois de um tempinho pra não bugar em alguns browsers heheh)
//você pode usar body onload tb ou onready de libs
window.onload = setTimeout(function(){initAtivoInativo('menu');},300);
</script>
Agradeço a ajuda de vocês, até logo.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.