Javascript no funciona en IE

Tengo el código de seguimiento, que al pasar el mouse sobre un elemento, mostrará un div y se ocultará al pasar el mouse. Esto funciona bien en todos los navegadores, excepto en IE, aquí está mi código;

// JavaScript Document

var baseopacity=0
function showtext(thetext){
    if (!document.getElementById)
    return
    textcontainerobj=document.getElementById("tabledescription")
    browserdetect=textcontainerobj.filters? "ie" : typeof textcontainerobj.style.MozOpacity=="string"? "mozilla" : ""
    instantset(baseopacity)
    document.getElementById("tabledescription").innerHTML=thetext
    highlighting=setInterval("gradualfade(textcontainerobj)",50)
}

function hidetext(){
    cleartimer()
    instantset(baseopacity)
}

function instantset(degree){
    if (browserdetect=="mozilla")
        textcontainerobj.style.MozOpacity=degree/100
    else if (browserdetect=="ie")
        textcontainerobj.filters.alpha.opacity=degree
    else if (document.getElementById && baseopacity==0)
        document.getElementById("tabledescription").innerHTML=""
}
function cleartimer(){
    if (window.highlighting) clearInterval(highlighting)
}
function gradualfade(cur2){
    if (browserdetect=="mozilla" && cur2.style.MozOpacity<1)
        cur2.style.MozOpacity=Math.min(parseFloat(cur2.style.MozOpacity)+0.2, 0.99)
    else if (browserdetect=="ie" && cur2.filters.alpha.opacity<100)
        cur2.filters.alpha.opacity+=20
    else if (window.highlighting)
        clearInterval(highlighting)
}
//<![CDATA[ 
$(window).load(function(){
    $(".tiptext").mouseover(function() {
        $(this).children(".description").show();
    }).mouseout(function() {
        $(this).children(".description").hide();
    });
});//]]>

Aquí está el HTML para uno de los elementos (cada elemento es una imagen);

<div id="one">
<div class="tiptext"><a href="http://mathremake.site40.net/"><img src="../images/web/1.png" height="180" width="300"/></a>
<div class="description"><font face="Arial, Helvetica, sans-serif"><u>Ascension Math Page</u></font><font size="2" face="Arial, Helvetica, sans-serif"><br>Ascension Collegiate's Mathematics department web page.</br></font></div>
</div>
</div>

Y el CSS para el mismo elemento;

#one {
    top: 200px;
    position: absolute;
    width: 300px;
    position: absolute;
    left: 50%; 
    margin-left: -500px;
    } 

Toda ayuda es apreciada, Gracias. :)

preguntado el 01 de julio de 12 a las 02:07

Por favor, sangre su código y use punto y coma donde sea apropiado. El hecho de que su intérprete de JavaScript no los necesite, no significa que los humanos no los necesiten. Además, al publicar una pregunta en Stack Overflow, "no funciona" no suele ser suficiente para obtener buenas respuestas. Recomendaría editar su publicación, incluidos los errores que obtenga. -

¿Se está llamando al controlador de eventos mouseOut? Agregar una consola de depuración o alert('mouseOut') asegurarse. -

Además, dado que ya está usando jQuery, también puede usar el $.fadeIn() y $.fadeOut() funciones para hacer su animación para usted. -

Matt, ¿alguna vez has oído hablar de jsfiddle.net ? -

2 Respuestas

IE tiene un problema con $(window).load(), puedes probar esto:

$(window).bind('load', function(){
     ...
}); 

o bien:

$(document).ready(function() {
   $(".tiptext").hover(function() {
      $(this).find(".description").show();
   }, function() {
      $(this).find(".description").hide();
   });
});

Respondido 01 Jul 12, 03:07

Puede probar el documento listo para, también puede usar .flotar() función que puede hacer las cosas más fáciles. También recomendaría agregar un display:none css propiedad a su .description clase o hacer una nueva .hide clase y agregarlo.

Javascript

  $(function(){
     $(".tiptext").hover(function() {
         $(".description").show();
     },function() {
         $(".description").hide();
     });
  });​

CSS:

  .description{
     display:none;
  }

solución

Respondido 01 Jul 12, 03:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.