Ir para conteúdo
Fórum Script Brasil
  • 0

Problema marcação menu jquery


Renato E.

Pergunta

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...