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 :

Modifier le onclik d'une balise par JS


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut Modifier le onclik d'une balise par JS
    Bonjour,

    certaine partie d'un tableau change en fonction de deux radio
    Je me demande si j'ai le droit de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td id="modif1" onclick="sort('DUREE')">Ouverte depuis...</td>
    					<td id="modif2" onclick="sort('OBJETDEB')">Commentaire</td>
    et modifier mon onclick avec du javascript voila ma fonction:
    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
     
    function critereSupp(choix)
    {
    	if(choix == "oui")
    	{
    		$("critere_date").style.display = "block";
     
    		$("modif1").onclick = "sort('DATEDEB')"; 
    		$("modif2").onclick = "sort('DUREETOT')";
    		$("modif1").innerHTML = "Début de session";
    		$("modif2").innerHTML = "Durée Totale";
    		......
    	}
    	if(choix == "non")
    	{
    		... je fais le contraire ....
    	}
    }
    Les titres sont bien changé mais quand j'essaye de clicker dessus cela ne fait rien même pas un rechargement de la page.

    Donc je me demande si j'ai bien le droit de le faire ou si je fait une erreur de syntaxe.

    Merci d'avance pour vos réponse.

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("modif1").onclick = function(){sort('DATEDEB');}; 
    $("modif2").onclick = function(){sort('DUREETOT');};

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Est-ce du jQuery? si c'est le cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#modif1").click(function(){sort('DATEDEB');}) ;
    A+.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Mince j'ai oublier de préciser non ce n'est pas du JQuery.

    Merci pour vos réponse je vais tester rapidement et je reviens vers vous.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Alors apres test cela fonction grand merci, mais alors comment peut ton interpréter le
    qui visiblement a tout changer, qu'est ce que cela a fait?
    Peut être cela permet 'il de spécifier que nous allons lui donner une fonction?

    Merci d'avance.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par darkterreur
    comment peut ton interpréter le
    Ben en cliquant sur l'élément

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Non non je me suis surement mal exprimé
    je sais ce que c'est cencé faire mais comment définir le role de
    dans mon code?

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Contrairement à l'attribut onclick de l'élément HTML...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td id="modif1" onclick="sort('DUREE')">
    La propriété onclick peut être :

    1) une réference à une fonction déclarée dans le code.

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Déclaration des fonctions
    function sort_DATEDEB(){
    	sort('DATEDEB');
    }
     
    function sort_DUREETOT(){
    	sort('DUREETOT');
    }
     
    // Gestionnaires d'évenement
    $("modif1").onclick = sort_DATEDEB;	// Appel la fonction sort_DATEDEB() lors du clique
    $("modif2").onclick = sort_DUREETOT;	// Appel la fonction sort_DUREETOT() lors du clique

    2) une fonction anonyme

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Gestionnaires d'évenement
    $("modif1").onclick = function(){sort('DATEDEB');};	// Appel cette fonction lors du clique
    $("modif2").onclick = function(){sort('DUREETOT');};	// Appel cette fonction lors du clique

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    Donc si je comprend bien une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function sort(param)
    {
    	tout un tas de truc avec mon param ;
    }
    avec un paramètre c'est donc une fonction anonyme?
    et je dois utiliser function() pour l’appeler ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mars 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2006
    Messages : 41
    Points : 33
    Points
    33
    Par défaut
    pas vraiment, non...

    Les fonctions sont anonymes car déclarées lors de leur affectation à l'évènement onClick. On ne peut donc pas s'en servir ailleurs.

    Si elles avaient été déclarées ailleurs puis appelées à la manière de sort_DATEDEB, elles ne seraient pas anonymes...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    D'accord

    Mais ma fonction sort() est déclaré dans une autre page .js inclue dans la page courante.

    donc si je comprend bien j'aurai pu faire ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $("modif1").onclick = sort('DATEDEB');
    Merci d'avance pour vos informations.

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non.
    onclick attend comme valeur un callback, c'est-à-dire une référence à une fonction, donc soit une fonction anonyme, soit le nom de la fonction.
    Si tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("modif1").onclick = sort('DATEDEB');
    tu affectes le résultat de l’exécution de la fonction, il faut donc écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("modif1").onclick = sort;
    mais là, tu ne peux pas passer de paramètre, c'est pourquoi il faut l'englober dans une fonction anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("modif1").onclick = function(){sort('DATEDEB');};

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 431
    Points : 129
    Points
    129
    Par défaut
    ha oui tout est clair maintenant comme de l'eau de roche
    et bien je vous remercie beaucoup pour votre patience.

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

Discussions similaires

  1. [XSLT] modifier le nom d'une balise
    Par valbrand dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/09/2008, 14h27
  2. [DOM] récupération d'une balise par la valeur de son attribut
    Par slyfer dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/11/2007, 13h50
  3. modifier la valeur d'une balise
    Par gentil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/04/2007, 17h15
  4. Modifier la structure d'une table par macro / vba
    Par zermatt dans le forum Access
    Réponses: 8
    Dernier message: 21/01/2007, 15h32
  5. Mise à jour d'une balise par innerHTML qui pose pb !!
    Par nerik38 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2006, 16h13

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