jquery html($(“<img>”).attr(“src”, cette.href)); ne fonctionne pas sous Safari
Je suis à l'aide d'une simple fonction jquery pour une galerie d'images. Il y a un div de vignettes, puis la cible div où les grandes images sont chargées dans après on clique sur une vignette.
Ça fonctionne dans tous les navigateurs, à l'exception de Safari, où l'image de l'url absolue est chargé, plutôt que d'être chargé à l'intérieur de la div.
Voici le code jquery:
$("#thumbnails a").click(function() {
$("#work").html($("<img>").attr("src", this.href));
return false;
});
Toute pensée? Grâce
Vous devez vous connecter pour publier un commentaire.
this.href
n'est pas sûre!Utilisation
$(this).attr('href')
et il va fonctionner.Découvrez ma question ici: Récupérant les HTML les valeurs de l'attribut "le DOM 0 chemin"
Il explique qu'il y a plusieurs attributs HTML (
href
d'entre eux) qui sont problématiques, donc on doit utiliser du jQueryattr()
pour récupérer leurs valeurs.Citation de la réponse sur cette page:
Mise à JOUR
J'ai tout compris. Vous n'avez pas de s'assurer que le jQuery, le code s'exécute après que le DOM est prêt. Toujours placer toutes vos jQuery code à l'intérieur du prêt gestionnaire:
Mise à JOUR 2
Essayez ce code:
J'aurais vu ça plus tôt. L'argument de l'html() la fonction doit être une chaîne de caractères.
Mise à JOUR 3
Il se pourrait que Safari (au moins) ne pas exécuter du code JavaScript dans une page qui est entièrement chargé via jQuery méthode load ().
Cependant, je pense que j'ai compris la façon de traiter avec elle!
Sur le 1776.php page, déplacez l'élément de SCRIPT à partir de la TÊTE sur le CORPS du document.
this.href
avec$(this).attr('href')
:)
)};
à la fin doit être déplacé à droite aprèsreturn false;
Il ressemble à: jsfiddle.net/gD78L.attr(
est manquant)
au lieu d'un,
après'<img>'
.Je de se confondre au large de la
this.href
parce que tout votre dans l'attribut$("#work")
.essayez ceci:
this
valeur aurait une autre valeur que si elle était à l'intérieur d'une fonction imbriquée expression / déclaration. Mais il n'est pas.Utiliser la propriété css
background:url(...)
au lieu de<img>
tag lors de l'ajout d'images à l'aide de javascript dans Safari Mobile. Il ne fonctionnera pas avec<img>
balises.