Mon DOM ressemble à ceci:
<div id="d1">
<div class="c1">
<a href="#"><img src="img1_on.gif"></a>
<a href="#"><img src="img2_on.gif"></a>
</div>
</div>
Lorsque quelqu'un clique sur une image, je veux que l'image src change pour <img src="imgx_off.gif">
où x
représente le numéro d'image 1 ou 2.
Est-ce possible ou dois-je utiliser CSS pour changer les images?
javascript
jquery
image
user67033
la source
la source
19th July, 2016 15:39 PM
, le nombre de votes positifs de la question compte 369 et @jonstjohn Répondre le nombre de votes positifs 931 . Mais, une telle mauvaise chance, @OP ne s'est pas connecté aprèsFeb 17 '09 at 2:57
.:(
Et, @jonstjohn Answer Remain Unmarked .Réponses:
Vous pouvez utiliser la fonction attr () de jQuery . Par exemple, si votre
img
balise a unid
attribut 'my_image', vous feriez ceci:Ensuite, vous pouvez changer l'
src
image de votre image avec jQuery comme ceci:Pour joindre ceci à un
click
événement, vous pouvez écrire:Pour faire pivoter l'image, vous pouvez procéder comme suit:
la source
L'une des erreurs les plus courantes que commettent les personnes qui changent la source de l'image n'attend pas que la charge de l'image effectue par la suite des actions telles que la maturation de la taille de l'image, etc. Vous devrez utiliser la
.load()
méthode jQuery pour effectuer des tâches après le chargement de l'image.Raison de la modification: https://stackoverflow.com/a/670433/561545
la source
Pour plus d'informations. J'essaie de définir l'attribut src avec la méthode attr dans jquery pour l'image publicitaire en utilisant la syntaxe par exemple:
$("#myid").attr('src', '/images/sample.gif');
Cette solution est utile et fonctionne, mais si vous changez le chemin, changez également le chemin de l'image et ne fonctionne pas.
J'ai cherché à résoudre ce problème mais je n'ai rien trouvé.
La solution consiste à mettre le «\» au début du chemin:
$("#myid").attr('src', '\images/sample.gif');
Cette astuce est très utile pour moi et j'espère qu'elle sera utile pour d'autres.
la source
S'il n'y a pas seulement jQuery ou d'autres frameworks de destruction de ressources - plusieurs ko à télécharger à chaque fois par chaque utilisateur juste pour une astuce simple - mais aussi du JavaScript natif (!):
Cela peut être écrit général et plus élégant:
la source
Je vais vous montrer comment changer l'image
src
, de sorte que lorsque vous cliquez sur une image, elle tourne à travers toutes les images qui sont dans votre HTML (dans votred1
identifiant etc1
classe en particulier) ... que vous ayez 2 images ou plus dans votre HTML .Je vais également vous montrer comment nettoyer la page une fois le document prêt, afin qu'une seule image s'affiche initialement.
Le code complet
La panne
Créez une copie des liens contenant les images (remarque: vous pouvez également utiliser l'attribut href des liens pour des fonctionnalités supplémentaires ... par exemple afficher le lien de travail sous chaque image ):
Vérifiez le nombre d'images dans le code HTML et créez une variable pour suivre l'image affichée:
Modifiez le code HTML du document afin que seule la première image soit affichée. Supprimez toutes les autres images.
Liez une fonction à gérer lorsque vous cliquez sur le lien de l'image.
Le cœur du code ci-dessus utilise
++$imgShow % $length
pour faire défiler l'objet jQuery contenant les images.++$imgShow % $length
augmente d'abord notre compteur d'un, puis modifie ce nombre avec le nombre d'images. Cela gardera l'index résultant cyclant de0
àlength-1
, qui sont les indices de la$images
objet. Cela signifie que ce code fonctionnera avec 2, 3, 5, 10 ou 100 images ... en parcourant chaque image dans l'ordre et en redémarrant à la première image lorsque la dernière image est atteinte.En outre,
.attr()
est utilisé pour obtenir et définir l'attribut "src" des images. Pour choisir des éléments parmi l'$images
objet, j'ai défini$images
le contexte jQuery à l'aide du formulaire$(selector, context)
. Ensuite, je.eq()
choisis juste l'élément avec l'index spécifique qui m'intéresse.Exemple jsFiddle avec 3 images
Vous pouvez également stocker les
src
s dans un tableau.Exemple jsFiddle avec 3 images
Et voici comment incorporer les hrefs des balises d'ancrage autour des images:
exemple jsFiddle
la source
J'espère que cela peut fonctionner
la source
Vous devez ajouter un attribut id à votre balise d'image, comme ceci:
alors vous pouvez utiliser ce code pour changer la source des images:
la source
Vous pouvez également le faire avec jQuery de cette manière:
Vous pouvez avoir une condition s'il existe plusieurs états pour la source d'image.
la source
J'ai eu le même problème en essayant d'appeler le bouton re captcha. Après quelques recherches, la fonction ci-dessous fonctionne désormais correctement dans presque tous les navigateurs célèbres (chrome, Firefox, IE, Edge, ...):
'theUrl' est utilisé pour rendre une nouvelle image captcha et peut être ignoré dans votre cas. Le point le plus important est de générer une nouvelle URL qui oblige FF et IE à restituer l'image.
la source
Changer la source de l'image à l'aide de jQuery
click()
élément:
code:
la source
la source
J'ai la même merveille aujourd'hui, je l'ai fait de cette façon:
la source
C'est un moyen garanti de le faire en JavaScript Vanilla (ou simplement Pure):
la source
Juste un ajout, pour le rendre encore plus petit:
la source
Il n'y a aucun moyen de changer la source de l'image avec CSS.
Le seul moyen possible est d'utiliser Javascript ou toute bibliothèque Javascript comme jQuery .
Logique-
Les images sont à l'intérieur d'un div et il n'y a pas
class
ouid
avec cette image.La logique sera donc de sélectionner les éléments à l'intérieur de l'
div
endroit où se trouvent les images.Sélectionnez ensuite tous les éléments images avec boucle et changez l'image src avec Javascript / jQuery .
Exemple de code avec sortie de démonstration -
la source