Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos, tenho um aplicativo e o mesmo está se utilizando da overlib, um script open source (http://www.bosrup.com/web/overlib/)
ele está em conflito com este cód
<script>sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover=function() { this.className+=" sfhover"; } sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); } }}if (window.attachEvent) window.attachEvent("onload", sfHover);</script>
Alguém tem idéia do que pode estar em conflito. não sei nada de js nem ajax, nem nada :( se alguém puder me dar uma mão serei mto grato e se precisar estamos aí para outras ferramentas de desenvolvimento! rsss
:)
agradeço a atenção! :P
então vai lá:
o do menu está no primeiro post.
cod do overlib:
http://lecowd.com.br/menu/overlib.js
e por fim, endereço onde está o meu menu:
acho que se alterarmos o cod do meu menu, que seria a melhor opção, já que o cod é só utilizado para fazer com que o menu funcione no IE, seria o mais viável, mas a pergunta é: dá?!
ABS!!!
Tente fazer o seguinte:
1) Troque o nome da classe sfhover para outra coisa. (sf_hover por exemplo). Não se esqueça de trocar dentro do JS e dentro do CSS.
2) Acho que a expressão regular que está na função não está muito certa.
Troque new RegExp(" sfhover\\b") por new RegExp("\\bsfhover\\b").
Testa aí e se não tiver dado certo, posta um link pra eu olhar novamente http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
1) Troque o nome da classe sfhover para outra coisa. (sf_hover por exemplo). Não se esqueça de trocar dentro do JS e dentro do CSS.
Troquei....
> 2) Acho que a expressão regular que está na função não está muito certa.Troque new RegExp(" sfhover\\b") por new RegExp("\\bsfhover\\b").
Toquei, no caso para RegExp("\\bsf_hover\\b") ;Pe ñ funciou, continua a mesma coisa. o interessante é que após ter feito a primeira alteração sugerida, fiz essa segunda alteração, trocando o nome do sf_... para o antigo sfhover. quando mandei aplicar ele não piscou, entretanto o menu não voltou. ele ficou "dropado"... e se eu seleciono qualquer um, nenhum outro levanta, mas todos abaixam.O "piscar" acontece quando mude de classe, de li pra ul, de <a> pra li.. dentro do borão, somente eu movimentar que ele pisca.. :/:(Certifique-se que este script esteja funcionando apenas para o Internet Explorer (através do document.all ou de comentários condicionais. Se não conhecer estes métodos de filtragem de script para o IE, poste novamente.)
Se o script não estiver filtrado apenas para o IE costuma dar uns erros estranhos, por isos certifique-se disso http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Não, rss.. não sei não cara. Eu simplesmente joguei este código lá entre as <head's> e entre <script's>como é feito este esquema?<!--if[ie6] algo do tipo, não?!:)~
Deve ficar assim mais ou menos:
<!--[if IE]><script>sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover=function() { this.className+=" sfhover"; } sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); } }}if (window.attachEvent) window.attachEvent("onload", sfHover);</script><![endif]-->Acho que dará certo.continua errado.. :/a função que o overlib executa, não sei se sabes, é que quando o mouse está em cima de algum loccal no qual ele está sendo setado, aparece uma caixa de diálogo, quando está fora, esta mesma caixa desaparece.Suponho que ele herde alguma propriedade deste script. se tivesse algum jeito para dar um clear:both, rsss.. ;/ fods
O problema continua em qual? IE? FF? ou os 2?
só no IE. ele não utiliza esse JS pro FF. Só por causa do IE que tenho que colocar isso, no FF sempre funcionou perfeitamente o esquema :);P
já que ele utiliza esse script somente pro IE, ele da conflito só com o IE nas duas funçõs :/
Certo. Tentando novamente:
<script>sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover += "; this.className+=' sf_hover'; "; sfEls[i].onmouseout += "this.className=this.className.replace(new RegExp('\\bsf_hover\\b'), '');"; }}if (window.attachEvent) window.attachEvent("onload", sfHover);</script>
Nem testei aqui não. Vê se dá algo.
(não se esqueça que eu mudei de sfhover pra sf_hover
nem dropa o menu com esse codigo.. aih carai, rssss... :/ acho que não vai rola, neh?! ;/ngm mais além do micox pra dar um help?!! :D:D:D:D
Mais um tiro:
<!--[if IE]><script>sfHover = function() { var sfEls = document.getElementById("nav").getElementsByTagName("LI"); for (var i=0; i<sfEls.length; i++) { sfOver=function(e) { if(typeof(e)=='undefined')var e=window.event source=e.target?e.target:e.srcElement if(source.nodeType == 3)source = source.parentNode source.className+=" sf_hover"; } sfOut=function(e) { if(typeof(e)=='undefined')var e=window.event source=e.target?e.target:e.srcElement if(source.nodeType == 3)source = source.parentNode this.className=this.className.replace(new RegExp("\\bsf_hover\\b"), ""); } sfEls[i].attachEvent("onmouseover",sfOver); sfEls[i].attachEvent("onmouseout",sfOut); }}if (window.attachEvent) window.attachEvent("onload", sfHover);</script><![endif]-->
Se tiver dado certo, eu explico a idéia.
fala cara..então, ele baixou, não piscou. mas não recolheu. Quando o mouse sai do menu em questão ele não volta ao estado anterior..;/
http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif
Posta o link do código inteiro, pois analisando só este fica difícil descobrir aonde está o conflito. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif