Javascript / Ajax - Remplacer une image par une autre

Javascript / Ajax - Remplacer une image par une autre - HTML/CSS - Programmation

Marsh Posté le 12-08-2010 à 08:57:19    

Bonjour à tous,
 
Admettons que j'aie une image <img src='image1.png'> qui s'affiche.
Par un script JAVASCRIPT associé à de l'AJAX (appel à ma base de données, PHP...) je souhaiterais que par l'action de mon utilisateur (clic sur cette image => vérification de la BDD) cette image soit remplacée par <img src='image2.png'>.
 
Merci par avance de votre aide.
 
Antoine

Reply

Marsh Posté le 12-08-2010 à 08:57:19   

Reply

Marsh Posté le 12-08-2010 à 09:33:36    

Tu peux utiliser une librairie JS pour te simplifier la tâche (crossbrowser etc..)...
Donne aussi un id à ton image...

 

Avec JQuery :

 

En JS :

Code :
  1. $(document).ready(function() {
  2.       
  3.    $("#monImage" ).click(function(){
  4.         
  5.     $.ajax({
  6.         url: 'monFichierPhp.php',
  7.         success: function(data) {
  8.             $(this).attr('src', data);
  9.         }
  10.     });
  11.  
  12.    });
  13. });


et dans ton php (ici "monFichierPhp.php" ) :

Code :
  1. <?php
  2.  
  3. // ici tu mets ta verif BDD
  4. //...
  5.  
  6. if()//si la verif BDD est ok
  7. {
  8.  echo 'image2.png';
  9. }
  10. else
  11. {
  12.  echo 'error.png'; // par exemple
  13. }
  14. ?>


Message édité par abais le 12-08-2010 à 09:35:03

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 09:48:51    

Merci pour une réponse si rapide et précise c'était inespéré !!! :)
 
Quelques questions :
* Le simple fait de donner à une image id=monImage va automatiquement être reconnu sur #monImage ?
* L'affichage de l'image (fichier PHP) va-t-il automatiquement REMPLACER la première image (et donc supprimer la 1ere) ?
* J'ai bien JQUERY sur mon serveur. Est-ce suffisant ? Qu'est-ce que CROSSBROWSER ?
 
* Question subsidiaire : Est-ce possible de charger un script javascript (puis ajax, php... = même principe) automatiquement pour un utilisateur toutes les 3 secondes ?
 
 
Merci encore !!!

Reply

Marsh Posté le 12-08-2010 à 10:10:57    

ingeniomatique a écrit :

Merci pour une réponse si rapide et précise c'était inespéré !!! :)
 
Quelques questions :
* Le simple fait de donner à une image id=monImage va automatiquement être reconnu sur #monImage ?
* L'affichage de l'image (fichier PHP) va-t-il automatiquement REMPLACER la première image (et donc supprimer la 1ere) ?
* J'ai bien JQUERY sur mon serveur. Est-ce suffisant ? Qu'est-ce que CROSSBROWSER ?
 
* Question subsidiaire : Est-ce possible de charger un script javascript (puis ajax, php... = même principe) automatiquement pour un utilisateur toutes les 3 secondes ?
 
 
Merci encore !!!

1) id='monImage' (avec les guillemets) [:moundir]  
Et oui, le Jquery "selectionne" comme le CSS, à savoir # pour un id, et un . pour une class...
 
2) le Php ne fait que retourner un texte, ici "image2.png" ou "error.png"...
C'est Le JS qui associe ce retour (data) à l'attribue "src" de ton <img>
Et oui, le fait de donner une valeur à un attribue remplace celle qui existait (si il en existait une)
 
3)Il faut aussi que tu charge JQuery dans ton HTML (indique le chemin)
=> <script type="text/javascript" src="jquery.js"></script>
 
4)Oui, il y a une fonction pour ça, le "setInterval" :

Code :
  1. var monInterval = setInterval(maFontion, 3000); // le temps est en milliseconde
  2. // Ici, la fontion "maFontion" sera exécutée toute les 3 seconde.
  3.  
  4. // Et si tu veux arreter l'execution de l'interval :
  5. clearInterval(monInterval);


 
 


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 10:13:40    

Réponse royale.
 
Tout est clair.
Je teste tout cela dès que possible.
 
Merci encore.

Reply

Marsh Posté le 12-08-2010 à 10:26:18    

J'oubliais, le CrossBrowser c'est le fait que ton script soit compatible sur tous (la majorité en tout cas) les navigateur (firefox, internet explorer...)...
Ici, c'est JQuery qui "s'occupe" de "traduire" notre code en fonction du nav...
Ne vas pas non plus croire que la différence est extreme entre les nav, mais en Ajax, Internet Explorer (anciennes versions) a une autre approche...
Perso, je choisi la simplicité, les librairies sont la pour ça...


Message édité par abais le 12-08-2010 à 10:30:58

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 10:52:17    

En fait je viens de tester et j'ai besoin d'une légère adaptation.
 
J'ai 42 images cliquables sur mon plateau.
Chacune, si on clique dessus, doit faire appel à la fonction.
 
Les ID des images vont de A1 à F7.
 
Comment adapter le script pour reconnaître les ID à chaque fois ?
 
 
$(document).ready(function() {
       
    $("#monImage" ).click(function(){
         
    $.ajax({
        url: 'monFichierPhp.php',
        success: function(data) {
            $(this).attr('src', data);
        }
    });
 
    });
});
 
 
Merci encore...

Reply

Marsh Posté le 12-08-2010 à 11:37:51    

ingeniomatique a écrit :

En fait je viens de tester et j'ai besoin d'une légère adaptation.
 
J'ai 42 images cliquables sur mon plateau.
Chacune, si on clique dessus, doit faire appel à la fonction.
 
Les ID des images vont de A1 à F7.
 
Comment adapter le script pour reconnaître les ID à chaque fois ?
 
 
$(document).ready(function() {
       
    $("#monImage" ).click(function(){
         
    $.ajax({
        url: 'monFichierPhp.php',
        success: function(data) {
            $(this).attr('src', data);
        }
    });
 
    });
});
 
 
Merci encore...


 
Tes images doivent bien être dans un conteneur quelconque. Supposons que tes images soient dans un <div id="conteneurImages">.
Tu feras quelque chose comme $("#conteneurImages > img" ).click...
 
En gros il devrait te suffire de changer  $("#monImage" ) par $("#conteneurImages  > img" ). je te laisse t'inspirer de ça: http://docs.jquery.com/DOM/Traversing/Selectors
 

Reply

Marsh Posté le 12-08-2010 à 12:55:36    

Alors je viens de tester :
 
Mes 42 images sont dans un tableau (TABLE) sur j'ai appelé id="conteneur".
Chaque image est affichée de cette manière : <td width="60" height="66"><img src="Images/Jeux/p41.png" width="60" height="63" id="C7"></td>
 
Mon script devient celui là :
 
 
<script src="scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script language="javascript">
$(document).ready(function() {
       
    $("#conteneur  > img" ).click(function(){
         
    $.ajax({
        url: 'jeup4verif.php',
        success: function(data) {
            $(this).attr('src', data);
        }
    });
 
    });
});
</script>
 
 
 
Et le fichier PHP est volontairement simple pour tester :
 

<?php
 
 $nb=rand(0,1);
if($nb==1)
{
  echo 'Images/Jeux/p41.png';
}
else
{
  echo 'Images/Jeux/p42.png';
}
?>

 
 
Pourtant, en cliquant sur une image au hasard, rien ne se passe...
 
Merci SINCEREMENT de votre aide.


Message édité par ingeniomatique le 12-08-2010 à 13:51:51
Reply

Marsh Posté le 12-08-2010 à 13:38:01    

Edit ton message, ta mis le code du JS au lieu du PHP...
 
 
Remplace :
 
$.ajax({  
        url: 'jeup4verif.php',  
        success: function(data) {  
            $(this).attr('src', data);  
        }  
    });

 
Par :
 
        alert("j'ai cliqué sur une image !" );
 
Et dis nous si ça marche...
 
EDIT :
 
A non je sais, le ">" du selecteur n'est pas approprier, c'est pour selectionner les element contenu directement...
or, entre ta table et tes image, il y a une arborescence de tr/td....
 
Donc, enlève le, ça donne $("#conteneur img" ) => "tous les <img> dont #conteneur est un ancetre(parent pas forcément direct)"


Message édité par abais le 12-08-2010 à 13:43:36

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 13:38:01   

Reply

Marsh Posté le 12-08-2010 à 13:51:14    

J'ai donc :
 
<script src="scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script language="javascript">
$(document).ready(function() {
       
    $("#conteneur img" ).click(function(){
         
    alert("j'ai cliqué sur une image !" );  
 
    });
});
</script>
 
Avec comme tableau :
 
<table width="200" border="0" cellpadding="2" cellspacing="2" style='display:block; position:absolute; top:10; left:10; width: 1000; font-family: Verdana, Geneva, sans-serif; font-size: 12px;' id="conteneur">
Succession de TR/TD avec une image dans chaque TD
</table>
 
Et en cliquant sur une image il n'y a pas l'alerte...

Reply

Marsh Posté le 12-08-2010 à 13:52:09    

( Je viens également d'éditer le script PHP simple ci-dessus )

Reply

Marsh Posté le 12-08-2010 à 14:06:27    

La je seche, tu es sure que JQuery est bien chargé ?
Tu peux le mettre online pour qu'on puisse voir ?
Remplace <script language="javascript"> par <script type="text/javascript"> aussi (meme si c'est pas ça qui merde)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 14:09:58    

Essaye sinon en remplaçant $(document).ready(function(){  par $(function(){
(ça n'attendra pas que ton DOM soit prêt)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 14:20:18    

Voila les deux éléments sont changés.
 
L'adresse online est : http://www.tromph.com/jeup4.php
Confidentiel car site pas encore lancé.
 
C'est un puissance 4.
 
Cliquer sur une case entraîne un script PHP qui change la couleur de la case (image PNG) si nécessaire.
 
Pour le moment cela ne fonctionne toujours pas.

Reply

Marsh Posté le 12-08-2010 à 14:30:18    

C'est normal. L'image de la grille chargée tout en bas de ton code s'affiche par dessus tes images de cases, ce qui fait que l'événement click n'est pas propagé. Le fait que l'image soit transparente ne change rien.

 

Une soluce simple consisterai à afficher des images rondes de "trous" par _dessus_ l'image de la grille.

 

edit: je viens de tester en enlevant l'image de la grille et ça marche bien, c'est donc bien ça.


Message édité par gelatine_velue le 12-08-2010 à 14:31:37
Reply

Marsh Posté le 12-08-2010 à 14:44:47    

tout à fait  :jap:


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 12-08-2010 à 15:31:28    

Il faut donc que je me débrouille pour obtenir des ronds de couleurs, aux bords transparents, exactement de la bonne dimension ; que je les cale exactement aux trous du plateau de jeu ; que j'inverse l'ordre tableau/image ; et que je retente...
Dès que j'en suis là je reviens vers vous pour vous confirmer que tout marche, avec le lien avec le script PHP :)
Un grand merci en tout cas.
En tout cas merci beaucoup...

Reply

Marsh Posté le 12-08-2010 à 15:43:05    

Nan nan attend c'est pas la seule solution hein, j'essaierai de te faire part d'autres soluces ce soir, là pas trop le temps.

Reply

Marsh Posté le 12-08-2010 à 15:46:31    

Ca marche j'attends ce soir pour "agir" :)

Reply

Marsh Posté le 12-08-2010 à 19:16:11    

En attendant je me suis quand même créé les images en "rond" pour placer  le tableau AU-DESSUS de l'image pour que le script puisse fonctionner...
Mais comment faire pour inverser (placer le tableau au dessus) ?
Merci par avance !!

Reply

Marsh Posté le 12-08-2010 à 19:42:03    

ingeniomatique a écrit :

En attendant je me suis quand même créé les images en "rond" pour placer  le tableau AU-DESSUS de l'image pour que le script puisse fonctionner...
Mais comment faire pour inverser (placer le tableau au dessus) ?
Merci par avance !!


 
 
Salut,
 
Alors j'ai réfléchi à ton problème et je pense que la solution la meilleure (celle que je ferais), est la suivante:
 

  • Définir un fond uni en html, qui eput se changer facilement (pour la maintenabilité)
  • Mettre ton image par dessus
  • Définir une grille virtuelle en javascript qui se base sur l'image de la grille et qui "sait" a quelle case correspond un clic
  • faire apparaitre une image derrière la grille à l'endroit du clic.


Je vais essayer de coder ça puor te donner une idée.

Reply

Marsh Posté le 12-08-2010 à 19:45:40    

C'est vraiment très gentil de me coder un exemple, oui, top !!
Peux-tu répondre à ma question ne serait-ce que par curiosité (concernant le changement d'ordre entre le tableau et l'image) ?
Merci !!

Reply

Marsh Posté le 12-08-2010 à 19:59:39    


 
Lien de Téléchargement du zip. A dézipper et à ouvrir avec firefox (ie n'aime pas comment FFx a enregistré les fichiers et j'ai la flemme de les reprendre 1 a 1): http://dl.free.fr/mYyhPPXPh


Message édité par gelatine_velue le 12-08-2010 à 20:51:39
Reply

Marsh Posté le 12-08-2010 à 20:49:57    

En effet ça marche ;)
Mais comme tu peux le constater (www.tromph.com/jeup4.php) le rendu est bien moins bon que ce que tu proposes en codage.

Reply

Marsh Posté le 12-08-2010 à 20:52:41    

ingeniomatique a écrit :

En effet ça marche ;)
Mais comme tu peux le constater (www.tromph.com/jeup4.php) le rendu est bien moins bon que ce que tu proposes en codage.

 

Tu as sur le message au dessus ce que j'ai codé.
Mon exmple a un positionnement approximatif et des couleurs dégueu, mais bon hein, c'est du détail :o.

 


Voila la partie intéressante du code:

 
Code :
  1. <style type="text/css">
  2. body {
  3. background-color: #ECECFF;
  4. }
  5. .violet {
  6. color: #609;
  7. }
  8. .bleu {
  9. color: #036;
  10. }
  11. #conteneurTableau
  12. {
  13. background-color:#55BBCC;
  14. position:absolute;
  15. width:800px;
  16. height:650px;
  17. margin:auto;
  18. z-index=0;
  19. }
  20. #imgGrille
  21. {
  22. position:absolute;
  23. z-index=2;
  24. }
  25. img.piece
  26. {
  27. height:64px;
  28. width:64px;
  29. position:absolute;
  30. z-index=1;
  31. }
  32. </style>
  33. <script src="jeup4.php_files/jquery-1.js" type="text/javascript"></script>
  34. <script type="text/javascript">
  35. largeurCase = 64;
  36. hauteurCase = 64;
  37. debutTabX = 180;
  38. debutTabY = 180;
  39. coinNb=1;
  40. $(function(){
  41.      
  42. $("#conteneurTableau" )[0].style.zIndex="0";
  43. $("#imgGrille" )[0].style.zIndex="2";
  44.     $("#conteneurTableau img#imgGrille" ).click(function(e){
  45.        
  46.     var x = e.pageX - this.offsetLeft;
  47. var y = e.pageY - this.offsetTop;
  48.        if ((x>debutTabX  && y>debutTabX ) && (x<(largeurCase  *7 +debutTabX) && y<(hauteurCase *6+debutTabY )))
  49. {
  50.  //calcul de la case
  51.  var caseX = Math.ceil((x-debutTabX)/largeurCase) -1;
  52.  var caseY = Math.ceil((y-debutTabY)/hauteurCase) -1;
  53.  //Creéation de la nouvelle image à placer
  54.  $("#conteneurTableau" ).append("<img id='piece"+coinNb+"' class='piece' src='coin.jpg'/>" );
  55.  $("#piece"+coinNb)[0].style.top = (largeurCase  * caseY +debutTabY)+"px"
  56.  $("#piece"+coinNb)[0].style.left = (hauteurCase *caseX +debutTabX )+"px"
  57.  coinNb++;
  58. }
  59.     });
  60. });
  61. </script>
  62. </head>
  63. <body>
  64. <div id="conteneurTableau">
  65.    <img id="imgGrille" src="jeup4.php_files/44-4.png" alt="" style="" width="800" height="650" border="0">
  66. </div> 
  67. </body>
  68. </html>
 


Tu remarqueras la disparition du tableau html.


Message édité par gelatine_velue le 12-08-2010 à 21:01:13
Reply

Marsh Posté le 13-08-2010 à 11:22:44    

Hello :)
Désolé du retard de réponse mais étant très loin de chez moi et sur un wifi public pourri, ceci explique cela...
Je viens de tester sur http://www.tromph.com/p4/jeup4.php et cela semble fonctionner impec !!!
Il me reste en effet à tout aligner, mettre de belles images... et surtout coder tout le PHP qu'il y a derrière :p
 
En tout cas un grand merci !!! Vraiment bien.

Reply

Marsh Posté le 13-08-2010 à 15:03:22    

Alors je viens de regarder en détails et j'avoue ne pas être très à l'aise avec tout ça car c'est bien au delà de mon niveau actuel... :$
 
 
Plusieurs questions :
 
* Où puis-je insérer mon appel à fichier PHP du style :
 
$.ajax({  
        url: 'jeup4verif.php',  
        success: function(data) {  
            $(this).attr('src', data);  
        }  
    });  
 
afin de vérifier certains points avant de procéder au changement d'image ?
 
* Sur le fichier PHP il faut que je puisse identifier chaque case par un id. Comment se matérialisent-ils dans ton script ? Auparavant j'avais de A1 à F7 (soit 42 ID différents).
 
Avec ces quelques indications je comprendrai mieux et pourrai adapter je pense...

Reply

Marsh Posté le 13-08-2010 à 15:58:30    

ingeniomatique a écrit :

Alors je viens de regarder en détails et j'avoue ne pas être très à l'aise avec tout ça car c'est bien au delà de mon niveau actuel... :$
 
 
Plusieurs questions :
 
* Où puis-je insérer mon appel à fichier PHP du style :
 
$.ajax({  
        url: 'jeup4verif.php',  
        success: function(data) {  
            $(this).attr('src', data);  
        }  
    });  
 
afin de vérifier certains points avant de procéder au changement d'image ?
 
* Sur le fichier PHP il faut que je puisse identifier chaque case par un id. Comment se matérialisent-ils dans ton script ? Auparavant j'avais de A1 à F7 (soit 42 ID différents).
 
Avec ces quelques indications je comprendrai mieux et pourrai adapter je pense...


 
Ton premier point est bizarre: tu appelles jeu4verif.php qui est à priori une page web et tu veux le mettre dans un attribut src d'une balise... Dis moi plutot ce que tu essaies de faire je pourrai mieux t'aider.
 
Dans mon script chaque pièce de monnaie à un id mais il ne représente pas sa position dans la grille. Il n'y a pas d'id par case, mais un tableau unique de cases virtuelles, c'est à dire non matérialisées par du code html.

Reply

Marsh Posté le 13-08-2010 à 17:32:00    

Il a repris de mon exemple, où le php retourne une url d'image, tout simplement...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 13-08-2010 à 17:56:36    

En fait mon souhait est d'ajouter un id par case.
Chaque clic sur une case appelle un script PHP (qui appelle ma BDD...) qui définit si OUI ou NON on change la couleur de la case concernée, et de quelle couleur.
 
Comment pourrais je procéder ?

Reply

Marsh Posté le 13-08-2010 à 18:40:31    

Tu peux communiquer des variables à ton PHP en ajax, soit en GET (directement sur l'url du php), soit en POST (regarde la docs de Jquery)
 
Pour recupérer l'id de l'objet cliqué en JS : var monId = $(this).attr("id" );


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 13-08-2010 à 19:15:33    

Oui le POST et le GET aucun souci.
 
Par contre, quand je récupère l'objet de l'id cliqué, comment savoir de quelle case il s'agit et utiliser cette donnée ?...

Reply

Marsh Posté le 13-08-2010 à 19:38:44    

En fait je viens de reprendre la proposition d'Abais.
 
Voir www.tromph.com/jeup4.php
Mon image est bien calée cette fois-ci donc l'affichage va bien :)
 
Cependant....
 
 
<script type="text/javascript">
$(function(){
       
    $("#conteneur img" ).click(function(){
         
    alert("j'ai cliqué sur une image !" );  
 
    });
});
</script>
 
=> En cliquant, cela fonctionne, aucun souci !!
L'alerte s'affiche.
 
 
Mais ce que je souhaite...
 
<script type="text/javascript">
$(function(){
       
    $("#conteneur img" ).click(function(){
         
    $.ajax({  
        url: 'jeup4verif.php',  
        success: function(data) {  
            $(this).attr('src', data);  
        }  
    });  
 
    });
});
</script>
 
Avec jeup4verif.php :
 
<?php
 
 $nb=rand(0,1);
if($nb==1)
{
  echo 'Images/Jeux/p41.png';
}
else
{
  echo 'Images/Jeux/p42.png';
}
?>
 
=> Aucune réaction ! Le clic ne modifie pas l'image...
Avez vous une idée de la cause ?
 
Encore merci :)

Reply

Marsh Posté le 13-08-2010 à 22:17:34    

J'ajoute que même sans faire appel à un fichier externe le remplacement d'image ne fonctionne pas.
 
Par exemple :
 
<script type="text/javascript">
$(function(){
       
    $("#conteneur img" ).click(function(){
         
    function(data) {  
            $(this).attr('Images/Jeux/p41.png', data);  
        }    
 
    });
});
</script>

Reply

Marsh Posté le 13-08-2010 à 22:34:29    

Si tu veux reprendre mon exemple il te sufit de passer au script php non pas un id unique mais les coordonnées de la case (variables caseX et caseY).
 
Pour ce qui est de ton pb j'ai cherché là et j'ai pas la moindre idée de pourquoi els callbacks sont pas appelés... Je dirais d'essayer avec une autre version de jquery, ptetre un bu dans celle ci...

Reply

Marsh Posté le 13-08-2010 à 23:56:31    

ingeniomatique a écrit :

J'ajoute que même sans faire appel à un fichier externe le remplacement d'image ne fonctionne pas.
 
Par exemple :
 
<script type="text/javascript">
$(function(){
       
    $("#conteneur img" ).click(function(){
         
    function(data) {  
            $(this).attr('Images/Jeux/p41.png', data);  
        }    
 
    });
});
</script>


<script type="text/javascript">
$(function(){
       
    $("#conteneur img" ).click(function(){
         
    function(data) {  
            $(this).attr('Images/Jeux/p41.png', data);  
            $(this).attr('src', 'Images/Jeux/p41.png'); // attr('nom de l'attribut', 'valeur souhaité')
        }    
 
    });
});
</script>


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 14-08-2010 à 09:29:59    

# Même en effectuant ce correctif, et même en modifiant la valeur de JQUERY cela ne fonctionne pas (voir www.tromph.com/jeup4.php).
 
<script src="p4/jeup4.php_files/jquery-1.js" type="text/javascript"></script>
<script type="text/javascript">  
$(function(){  
         
    $("#conteneur img" ).click(function(){  
         
    function(data) {    
            $(this).attr('src', 'Images/Jeux/p41.png');
        }      
   
    });  
});  
</script>  
 
=> Aucun effet. Je suppose que c'est lié au tableau (conteneur) et images, façon de les appeler... Mais il y a forcément une solution :s
 
 
# Gelatine_value sur ton exemple (que je maîtrise moins bien, car très "pro", je t'embaûcherais volontiers lol), je comprends qu'on peut utiliser les coordonnées à la place des ID.
Cependant, où placer mes vérifications PHP, appels à BDD, avant d'afficher la seconde image, et choisir quelle seconde image à afficher ?
 
Bon WE à tous.


Message édité par ingeniomatique le 14-08-2010 à 09:30:46
Reply

Marsh Posté le 16-08-2010 à 10:30:41    

Je me permets une petite relance... J'ai tout torturé ce week end de mon côté et je n'ai rien trouvé.
 
J'ai même tenté de simplifier la page sans que ça marche davantage :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Document sans nom</title>
  6. <script type="text/javascript" src="scripts/jquery-1.4.2.min.js"></script>
  7. <script type="text/javascript">
  8. $(function(){ 
  9.        
  10.     $("#conteneur img" ).click(function(){ 
  11.          
  12.     function() {   
  13.             $(this).attr('src', 'Images/Jeux/p41.png');
  14.         }     
  15.  
  16.     }); 
  17. }); 
  18. </script>
  19. </head>
  20. <body>
  21. <table id="conteneur">
  22. <tr><td><img src='Images/Boutique/010.png'></td></tr></table>
  23. </body>
  24. </html>


 
Merci par avance de votre aide !

Reply

Marsh Posté le 16-08-2010 à 11:03:28    

ingeniomatique a écrit :

Je me permets une petite relance...  
 
Merci par avance de votre aide !


 
 
J'ai pris le code de ta page et remplacé le code js par ceci:
 

Code :
  1. $(function(){
  2. 3
  3. 4 $("#conteneur img" ).click(function(){
  4. 5
  5. 6
  6. 7 $(this).attr('src', 'Images/Jeux/p41.png');
  7. 8
  8. 9
  9. 10 });
  10. 11});


 
Et là ça marche.
Autrement dit, tu avais mis une fonction dans une fonction.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed