Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rcdesign

2 funções similares não funcionam juntas no IE

Recommended Posts

Preciso de ajuda!!Tenho um site que possui 02 menus laterais (menu esquerdo e menu direito). Construí os menus utilizando CSS e como ambos possuem submenus em alguns links exite uma função em javscript em cada um deles.Como esse site volta e meia tem os itens do menu alterados fiz cada um em uma página separada e incluo-os na página em PHP (includes).Acontece que no IE um dos menus não funciona (no caso o menu esquerdo). Ele funciona corretamente se eu tirar o menu direito, e os dois juntos funcionam perfeitamente no Firefox.Como faço pra resolver isso????? :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, resolver o que ? Por teoria ? Sem ver não dá!!!

Adriano, não postei o código porquê esse tipo de problema pode ser única e exclusivamente um bug do IE que teoricamente poderia ser resolvido acrescentando algum outro cód. javascript, por exemplo. Dessa forma não seria necessário incluir aqui o código das minhas páginas já que conforme eu comentei os códigos funcionam perfeitamente no Firefox e no IE eles funcionam corretamente se estiverem 'sozinhos'. Então se algum outro membro do forum por ventura já tenha passado por problema similar saberia resolver sem a necessidade de colocar o tal script quilométrico como você bem falou.

 

Eu estou reformulando a estrutura do site e como não está funcionando eu não coloquei no ar. Em vista disso vou postar o cód. aqui mesmo ok? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

- menuesq.php

<script type="text/javascript">

function IEHoverPseudoesq() {

 

var navItemsesq = document.getElementById("primary-navesq").getElementsByTagName("li");

 

for (var i=0; i<navItemsesq.length; i++) {

if(navItemsesq.className == "menuparentesq") {

navItemsesq.onmouseover=function() { this.className += " over"; }

navItemsesq.onmouseout=function() { this.className = "menuparentesq"; }

}

}

 

}

window.onload = IEHoverPseudoesq;

 

</script>

 

<ul id="primary-navesq">

<li class="menuparentesq"><a href="#">Institucional</a>

<ul>

<li><a href="missao.php">Missão</a></li>

<li><a href="principios.php">Princípios e Valores</a></li>

<li><a href="visao.php">Visão</a></li>

<li><a href="diretoria.php">Diretoria</a></li>

<li><a href="atividades.php">Atividades</a></li>

<li><a href="contas.php">Prest. de Contas</a></li>

<li><a href="estatuto.php">Estatuto</a></li>

<li><a href="codetica.php">Código de Ética</a></li>

<li><a href="publicacoes.php">Publicações</a></li>

</ul>

</li>

<li class="menuparentesq"><a href="#">Representações</a>

<ul>

<li><a href="cams.php">CAMS</a></li>

<li><a href="comhsh.php">Comitê de Gays/HSH</a></li>

<li><a href="minsaude.php">Min. da Saúde</a></li>

<li><a href="mincultura.php">Min. da Cultura</a></li>

<li><a href="mineducacao.php">Min. da Educação</a></li>

<li><a href="sedh.php">Secr.Esp.Dir. Humanos</a></li>

</ul>

</li>

<li><a href="#">Projetos</a></li>

<li><a href="#">E-Campanhas</a></li>

<li><a href="#">Filiação</a></li>

<li><a href="#">Como Ajudar</a></li>

<li><a href="#">Eventos Futuros</a></li>

<li><a href="#">Notícias ABGLT</a></li>

<li><a href="#">Parcerias</a></li>

<li><a href="#">Paradas</a></li>

<li><a href="#">Links</a></li>

<li><a href="#">Fale Conosco</a></li>

</ul>

meudir.php

<script type="text/javascript">

function IEHoverPseudodir() {

 

var navItemsdir = document.getElementById("primary-navdir").getElementsByTagName("li");

 

for (var i=0; i<navItemsdir.length; i++) {

if(navItemsdir.className == "menuparentdir") {

navItemsdir.onmouseover=function() { this.className += " over"; }

navItemsdir.onmouseout=function() { this.className = "menuparentdir"; }

}

}

 

}

window.onload = IEHoverPseudodir;

</script>

<ul id="primary-navdir">

<li class="menuparentdir"><a href="#">Cultura</a>

<ul>

<li><a href="filmes.php">Filmes</a></li>

<li><a href="livros.php">Livros</a></li>

</ul>

</li>

<li><a href="leis.php">Legislação</a></li>

<li><a href="programas.php">Programas</a></li>

<li class="menuparentdir"><a href="#">Academia</a>

<ul>

<li><a href="teses.php">Teses</a></li>

<li><a href="dissertacoes.php">Dissertações</a></li>

</ul>

</li>

<li><a href="homofobia.php">Homofobia</a></li>

<li><a href="advocacy.php">Advocacy GLTB</a></li>

<li><a href="roteiro.php">Roteirão</a></li>

<li class="menuparentdir"><a href="#">Mídia GLS</a>

<ul>

<li><a href="jornais.php">Jornais</a></li>

<li><a href="revistas.php">Revistas</a></li>

<li><a href="blogs.php">Blogs</a></li>

<li><a href="sites.php">Sites</a></li>

<li><a href="viagens.php">Viagens</a></li>

</ul>

</li>

<li><a href="http://www.abglt.org.br/chat/" target="_blank">Bate-Papo</a></li>

</ul>

ambas as páginas estão como includes (<?php include "menuesq.php" ?> e <?php include "menudir.php" ?>) em suas respectivas áreas.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de semanas tentando resolver esse problema, depois de postar a questão em vários foruns, inclusive fóruns em inglês e depois de praticamente 3 semanas, finalmente a solução apareceu.

 

Então posto aqui a resposta que recebi deste forum: Web Developer?

pra quem precisar e/ou esbarrar com o mesmo problema.

 

A solução é até relativamente simples, eu já até tinha tentado algo parecido mas como 'escrevi' o código errado não tinha dado certo. Juntei os dois códigos numa única página .js e nesse arquivo que contém o código JS, basta combinar as duas funções:

 

 

window.onload = function() {IEHoverPseudoesq();IEHoverPseudodir();}

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.