IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Changement de traitement de onclick sur html par javascript


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Changement de traitement de onclick sur html par javascript
    Bonjour,

    J'ai un script qui me permet d'alterner une image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function changeImage(el_image, id_image)
    {
      	var prefixe = document.getElementById('prefixe').value;
      	var image_avant = 'images/Folder_Close.png';
    	var image_avant = prefixe+image_avant;
    	var image_apres = 'images/Folder_Open.png';
    	var image_apres = prefixe+image_apres;
     
    	if(el_image.src == image_avant)
    	    {
    	    	el_image.src = image_apres;
    	    }
    	else
    	  	{
    	    	el_image.src = image_avant;
    	    }
    	getElementsByTagName("img").setAttribute("src", el_image.src);	
    	getElementById(id_image).setAttribute("onclick", "new Effect.BlindUp('detail_histo0', 1);changeImage(this);");
    }
    Et j'aurai voulu aussi alterner le traitement associé au onclick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <img id="image0" src="{#prefixe_site#}images/Folder_Close.png" 
    				onclick="new Effect.BlindDown('detail_histo0', 1);changeImage(this, 'image0');" />
    Tout va bien pour l'image, mais pour le onclick, il ne se passe rien.

    Merci d'avance
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    alterner le traitement associé au onclick ...

    on dirait un mode d'emploi traduit du chinois en russe par un esquimaud ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Bon sang, j'étais là tranquile, incognito, et j'ai été découvert.

    Oui je suis russe pas mon père, esquimaud par ma mère et je suis né en chine.

    Le script permet d'alterner une image lorsque l'on clique dessus, l'objectif est d'exécuter un script qui ouvre une fenêtre dans le formulaire. Lorsqu'on clique sur l'image alternée on ferme le script ouvert.

    J'ai essayé en Breton
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    N'arrivant pas à visualiser ce qu' "Ouvrir une fenêtre dans un formulaire" donne, il m'est difficile d'en imaginer une solution.
    Changer la source d'une image en cliquant dessus, c'est par contre plus facile à imaginer.
    Cela donne à peut près ceci (Attention, je n'ai pas testé, c'est le principe que j'énonce ici)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <SCRIPT language="JavaScript">
    function changerimg()
    {
    //	alert(document.getElementById("img0").src);//AU cas où le contenu n'est pas relatif mais absolu, on peut voir ici le contenu.
    	if(document.getElementById("img0").src == "monImage1.gif")
    	{
    		document.getElementById("img0").src = "monImage2.gif";
    	}
    	else
    	{
    		document.getElementById("img0").src = "monImage1.gif";
    	}
    }
     
    </SCRIPT>
    </HEAD>
     
    <BODY>
    <IMG id="img0" src="monImage1.gif" onClick="changerimg()">
    </BODY>
    </HTML>
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Je n'ai aucun problème avec mon script de changement d'image tel que je l'ai mis dans mon 1er POST.

    Ce qui pose problème c'est le changement de onclick que j'ai voulu associé.

    En fait il ne change rien.

    Ce qui fonctionne pour l'image, ne fonctionne pas pour le onclick.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    pour attribuer dynamiquement un onclick

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('machinchose').onclick=function(){alert('nouveau comportement du click')};
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Merci SpaceFrog

    J'avais déjà assayer cela, mais il ne veut pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    function changeImage(el_image, numero)
    {
      	var prefixe = document.getElementById('prefixe').value;
      	var id_image = "image"+numero;
      	alert(id_image);
      	var lien_avant = "new Effect.BlindDown('detail_histo"+numero+"', 1);changeImage(this, '"+numero+"');";
      	var lien_apres = "new Effect.BlindUp('detail_histo"+numero+"', 1);changeImage(this, '"+numero+"');";
      	var image_avant = 'images/Folder_Close.png';
    	var image_avant = prefixe+image_avant;
    	var image_apres = 'images/Folder_Open.png';
    	var image_apres = prefixe+image_apres;
     
    	if(el_image.src == image_avant)
    	    {
    	    	el_image.src = image_apres;
    	    	img_onclick = lien_apres;
    	    }
    	else
    	  	{
    	    	el_image.src = image_avant;
    	    	img_onclick = lien_avant;
    	    }
    	document.getElementById(id_image).onclick=function(){img_onclick};
    	getElementsByTagName("img").setAttribute("src", el_image.src);
     
    }
    Code html avant clic sur image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="image1" src="images/Folder_Close.png" onclick="new Effect.BlindDown('detail_histo1', 1);changeImage(this, '1');">
    Code html après clic sur image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img id="image1" src="images/Folder_Open.png" onclick="new Effect.BlindDown('detail_histo1', 1);changeImage(this, '1');">>
    Il y a bien changement de l'image, mais pas changement du onclick

    Dans le alert que j'ai placé dans mon script j'ai bien :

    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(document.getElementById(id_image.value));
    J'ai "null"

    Bon y a un problème quelque part, mais j'avoue que depuis hier j'ai beau tourner dans tous les sens, je ne vois pas.
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

  8. #8
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    And the solution is :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function changeImage(el_image, numero)
    {
      	var prefixe = document.getElementById('prefixe').value;
      	var id_image = "image"+numero;
      	var image_avant = 'images/Folder_Close.png';
    	var image_avant = prefixe+image_avant;
    	var image_apres = 'images/Folder_Open.png';
    	var image_apres = prefixe+image_apres;
     
    	if(el_image.src == image_avant)
    	    {
    	    	el_image.src = image_apres;
    	    	document.getElementById(id_image).onclick=function(){new Effect.BlindUp('detail_histo'+numero, 1); changeImage(this, numero);};
    	    }
    	else
    	  	{
    	    	el_image.src = image_avant;
    	    	document.getElementById(id_image).onclick=function(){new Effect.BlindDown('detail_histo'+numero, 1); changeImage(this, numero);};
    	    }
    	getElementsByTagName("img").setAttribute("src", el_image.src);
    }
    Merci
    Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. traitement des formulaires html par outlook
    Par franzkafka dans le forum Outlook
    Réponses: 1
    Dernier message: 18/02/2008, 18h07
  2. Changement de couleur d'une cellule html actionné par radio?
    Par Patatebio dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2007, 20h25
  3. un evennement onclick sur combobox par code
    Par Mihalis dans le forum Delphi
    Réponses: 6
    Dernier message: 10/06/2007, 15h57
  4. Changement d'images avec onclick ou par lien
    Par zubaran dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/07/2006, 22h09
  5. [HTML][débutante] Map ou Onclick sur image ? Différent ?
    Par khany dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/12/2004, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo