2010-11-19 2 views
2

J'ai le code suivant:jQuery IE6 et 7 erreur

$('#main-nav a').mouseover(function() { 
    var name = $(this).attr("rel"); 
    $("#subnav ul." + name).show(); 
}) 

Fondamentalement, le code obtient juste la valeur de l'attribut rel d'un lien lorsqu'il est plané au-dessus et fait alors une ul avec une classe de la même valeur apparaît.

Ce code fonctionne très bien dans tout autre navigateur à part IE6 et 7 qui me donne les erreurs suivantes:

  1. exception levée et non pris (dans mon dossier jquery 1.4.4)
  2. objet n » t supporter cette propriété ou méthode (dans mon script jquery que iv a écrit)

Cela a quelque chose à voir avec le fait que iv a utilisé une variable dans mon sélecteur, si je n'utilise pas une variable, je ne les ai pas les erreurs. Le problème c'est que j'ai besoin de mettre la variable pour que cela fonctionne, est-ce que quelqu'un connaît une meilleure façon de faire cela qui ne causera pas ces erreurs?

Merci

+1

Vous devez d'abord vérifier que la concaténation de la chaîne et de la variable pour créer le sélecteur est toujours réussie, en l'imprimant. –

+0

L'alerte (nom) est correcte, il y a trois valeurs différentes (sat, usa ou jap), donc quand elles sont concaténées, le sélecteur sera #subnav ul.sat, #subnav ul.usa ou #subnav ul.jap ce qui est ce que je veux que le sélecteur soit. si je tape juste un de ces sélecteurs manuellement sans faire le tour des variables, je ne comprends pas les erreurs, donc je suis déconcerté! – geoffs3310

Répondre

4

Pour autant que je peux dire, '#main-nav a' retourne une collection d'objets <a>. Avez-vous essayé d'itérer le résultat avec each?

$.each($('#main-nav a'), function (index, element) { 
    element.mouseover(function() { 
     var name = $(this).attr("rel"); 
     $("#subnav ul." + name).show(); 
    }); 
}); 
+0

Vous êtes un génie! Je vous remercie!!! – geoffs3310

+0

Eh bien, en fait, il est corrigé dans IE7, mais IE6 est toujours les erreurs! Je déteste ce navigateur avec une passioN! – geoffs3310

+0

N'est-ce pas ce que fait jQuery en interne de toute façon? – RoToRa