2011-05-29 7 views
2

Utilisation de jQuery 1.5.1 Essayé ce bloc de code dans: section de tête ainsi que dans la ligne, dans la fonction doc prêt ainsi que out. RIEN ne le fait fonctionner, je suis perplexe. Cela fonctionne dans tous les autres navigateurs. Ce qui est supposé arriver, c'est que lorsque l'utilisateur survole une div avec la classe "lsr", une autre div avec affichage: none apparaît.jquery hover() IE7 & IE8

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("div.lsr").hover(
      function() { $("#lsr").show(); }, 
      function() { $("#lsr").hide(); } 
     ); 
    }); 
</script> 
... 
<div class="lsr"></div> 

<div id="lsr""> Some Text appears </div> 

ok .... donc la réponse est que IE n'aime pas la div vide. Apparemment, il ne le rendra pas. La meilleure solution que j'ai trouvé était d'utiliser le CSS suivant sur la div vide ..... J'ai essayé d'ajouter un remplissage et   rien de tout cela a fonctionné. Ce qui fonctionne est d'utiliser le CSS suivant sur la div vide.

.lsr { 
    ... 
    background-color: #fff; 
    filter:alpha(opacity=0); 
    opacity:0.0; 
} 
+0

Il vous manque un attribut type = "text/javascript" dans votre script-tag qui est peu susceptible de résoudre le problème – marsbear

+0

[ Cette démo] (http://jsfiddle.net/hyAHP/) fonctionne très bien dans IE8. Incluez-vous correctement jQuery? Cela ressemble à une erreur JavaScript. Il doit certainement être ** dans ** le wrapper jQuery [document.ready] (http://docs.jquery.com/How_jQuery_Works#Launching_Code_on_Document_Ready). – andyb

+0

La politique de sécurité sur IE bloque-t-elle JavaScript? Les autres sites compatibles JavaScript fonctionnent-ils? – andyb

Répondre

2
  • Votre div.lsr n'a pas de contenu, ce qui rendrait puissant difficile à survolez (en fonction de votre CSS)
  • Vous avez un " supplémentaire sur <div id="lsr"">

Si je fixe ces questions il fonctionne très bien pour moi: JSFiddle

Éditer sur la base des commentaires IE a des problèmes de reconnaissance des événements sur un div qui n'a aucun contenu et qui a position: absolute. Pour corriger, essayez soit en utilisant différents positionnement CSS, ou en ajoutant du contenu à la div (par exemple &nbsp;)

+0

Ce div a une taille et une largeur de 100px; –

+0

La démo de JSFiddle fonctionne-t-elle pour vous? Si oui, pouvez-vous identifier les différences entre le vôtre et le vôtre? – newtron

+0

Votre droit, il a quelque chose à voir avec div divs. Comme vous pouvez le voir sur le site actuel, ils sont réglés sur une largeur et une hauteur de 100 pixels, et ils flottent sur une image. Si j'ajoute un seul '.' à eux quand je planerai dessus que cela fonctionne. Alors ... question est de savoir comment contourner cela dans IE? –

1

document prêt? Ce n'est pas dans votre code d'exemple, mais est-ce présent dans votre propre code?

$(function(){ 
    $("div.lsr").hover(
     function() { $("#lsr").show(); }, 
     function() { $("#lsr").hide(); } 
    ); 
}); 
+0

Oui c'est, j'étais juste un peu laconique ... le code actuel est maintenant en question. –