2009-05-28 6 views
0

Donc j'essaie de combiner deux galeries d'images, Galleria et Lightbox. La façon dont il est censé fonctionner est que Lightbox va lire le href de la balise d'ancrage et Galleria va lire le src de la balise image dans le code suivant:Firefox/jQuery ne lit aucun attribut pour un élément img

<a href="./public/images/gallery/2.JPG"> 
<img class="replaced" src="./public/images/gallery/2.JPG"/> 
</a> 

Je cherche à tirer la Attribuez la valeur de la commande src out et utilisez-la comme valeur de href. Juste pour l'instant, une fois que je travaille, je dois retravailler le code.

Voici comment je tire la valeur d'attribut sur

var imageSrc = image.attr('src'); 

En ce moment, je l'ai testé dans FF2, FF3 et aucun d'entre eux sont en train de lire la valeur. Dans Chrome et IE, il lit la valeur. Ce que je pensais c'est que l'image est créée dans jQuery alors peut-être que Firefox avance trop vite et que jQuery n'a pas encore eu le temps de créer l'image?

Des pensées?

Merci,
Levi

+0

comment choisissez-vous l'image? –

+0

Que contient la variable "image"? Que se passe-t-il si vous écrivez "var imageSrc = $ ('img.replaced'). Attr ('src');" au lieu? – Ivar

+0

l'image fait partie d'une fonction qui fait référence à cette ligne var _img = $ (nouvelle image()). Attr ('src', _ src) .addClass ('remplacé'); – Levi

Répondre

0

Eh bien comment allez-vous? Sélectionnez l'image

Essayez:

$('.replaced').each(function(){ 
    var imageSrc = $(this).attr('src'); 
    //alert(imageSrc) /* for IE */ 
    console.log(imageSrc); 
}); 
0

Vérifiez les points suivants:

  • Avez-vous défini correctement image? Comment attribuez-vous une valeur à cela?
  • Avez-vous demandé la valeur de image après la position de l'élément DOM représentant cette image?
  • Avez-vous veillé à mettre vos scripts à la fin de votre corps, juste avant la fermeture </body> tag? (Si vous ne le faites pas, il est possible que vous vous retrouviez avec une référence nulle et que toute exécution de Javascript se termine.)

Les chances sont bonnes qu'il soit lié à l'un de ces trois problèmes.

+0

Pourquoi aurait-il besoin de mettre son script à la fin du corps ?! C'est ce que l'événement prêt est pour l'image –

+0

est un paramètre d'une fonction, il se réfère à cette ligne où il est défini: var _img = $ (nouvelle image()). Attr ('src', _ src).addClass ('remplacé'); Je crée l'image dans un fichier JS puis, dans le fichier JS qui la suit, j'affecte et crée la valeur de l'étiquette d'ancrage. Il semble être dans le bon ordre, je veux dire que cela fonctionne dans IE et Chrome, FF a un ordre différent pour faire les choses? – Levi

+0

C'est l'URL de ce sur quoi je travaille, j'ai un firebug ouvert mais je suis nouveau et je ne sais pas comment l'utiliser pleinement. http://www.lewiscreekbuilders.com/test/?gallery-with-testimonials/gallery/?galId=62#./public/images/gallery/2.JPG – Levi

0

Enveloppez-vous votre appel dans un événement prêt?

$(document).ready(function(){ 
    var imageSrc = $('img.replaced').attr('src'); 
}); 

S'il vous plaît noter que si vous avez plusieurs images qui partagent la classe « remplacé » vous devez lire le src de chacun d'entre eux. La méthode ci-dessus ne fonctionnera que sur une seule image, si vous voulez lire l'attribut pour plusieurs images, utilisez ceci:

$(document).ready(function(){ 
    var imageSrc = $('img.replaced').each(function(){ 
     $(this).attr('src'); 
    }); 
}); 
+0

Oui, il est enveloppé, et il n'y a qu'une seule instance d'une image avec une classe de 'remplacé'. Vous pouvez voir sur quoi je travaille à cette adresse http://www.lewiscreekbuilders.com/test/?gallery-with-testimonials/gallery/?galId=62#./public/images/gallery/2.JPG – Levi

Questions connexes