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 :

Recupération d'id à la volée


Sujet :

JavaScript

  1. #21
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par Johngtrs Voir le message
    Hum d'accord, donc dans ce cas, ça voudrait dire :

    si j'ai un event.target je retourne vrai sinon je retourne faux il n'y a pas d'event ?
    Non, c'est juste une forme raccourcie pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(COND){
      CODE1
    }
    else{
      CODE2
    }

    Mais dans le cas de l'exemple présent, je préfère encore la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var target = event.target || event.srcElement;
    Le "||"(ou non-exclusif) testant d'abord le membre de gauche, s'il est "vrai" le renvoit sinon renvoit le membre de droite.

    Cette forme, bien que pouvant être dangereuse pour tester des objets qui pourraient valoir "faux" comme par exemple 0 ou "", je la préfère car je la trouve plus "lisible au premier regard".


    edit: event.srcElement c'est l'équivalent pour IE de event.target pour tous les autres navigateurs.

  2. #22
    Membre éclairé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Par défaut
    Oui je trouve ça plus lisible. Mais en fait je cherchais ce que voulait dire le "event.srcElement"

    A tout hasard, dans ma fonction onclick, est-ce que je peux récupérer le dernier ID sur lequel j'étais ?

  3. #23
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Au cas où tu étais déjà en train d'écrire ce message et que tu n'as pas vu l'edit de mon dernier message, l'explication du srcElement s'y trouve. ;-)

    Quant à ta seconde question, oui (enfin si j'ai bien compris ta question) il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var id_de_l_element_clique = target.getAttribute('id');
    (avec la variable target initialisée comme dans le code de bovino avec event.target ou event.srcElement )

  4. #24
    Membre éclairé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Par défaut
    Non ça ne marche pas.

    En fait j'ai un index alphabétique et si je clic sur une lettre, le background de la lettre obtient une image pour signaler que l'on se trouve bien sur la lettre cliqué.

    Et lorsque je clic sur une autre lettre, vu que je fais tout avec ajax, je recharge pas les pages, je voudrais récupérer le dernier id sur lequel on a cliqué, pour lui enlever le background et mettre un background au nouveau.

  5. #25
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    ah si tu parles du précédent, (dernier, j'avais compris l'actuel) il n'y a pas de fonction javascript pour ça, tu dois le sauver toi-même lors du clique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var last_id;
    document.getElementById('conteneur').onclick = function(event){
      var target = event.target || event.srcElement;
      if(last_id){
        // enleve le background du précédent
        document.getElementById(last_id).style.backgroundImage = '...';
      }
      // sauvegarde nouvel id
      last_id = target.getAttribute('id');
      // ajout du background au nouveau
      document.getElementById(last_id).style.backgroundImage = '...';
    };
    Un truc du genre.

  6. #26
    Membre éclairé
    Homme Profil pro
    Analyste développeur
    Inscrit en
    Juin 2010
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste développeur

    Informations forums :
    Inscription : Juin 2010
    Messages : 317
    Par défaut
    Super merci, j'ai donc fais ça :

    Code JavaScript : 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
    var last_id;
    document.getElementById('indexAlpha').onclick = function(event) {
            // délégation d'évènement
    	var target = event.target ? event.target : event.srcElement;
    	// si il y a un id et si on clic sur une balise a
    	if (target && target.tagName.toLowerCase() == 'a') {
    		// enleve le background de l'id precedent
    		if(last_id){
    			document.getElementById(last_id).className = "";
    			document.getElementById(last_id).background = "";
    		}
    		// sauvegarde de l'id precedent
    		last_id = target.id;
    		// ajout le background de l'id en cours
    		document.getElementById(target.id).className = "active";
     
            ...
     
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/01/2015, 17h13
  2. [Indy TCPClient] Recupérer le données reçues
    Par fandor7 dans le forum Web & réseau
    Réponses: 8
    Dernier message: 29/06/2003, 21h52
  3. [Winsock] Envoi et recupération d'une image
    Par arnolanf dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/11/2002, 08h49
  4. recupèrer file d'attente d'impression
    Par magic corp. dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2002, 14h12
  5. comment puis-je recupérer l'extesion du fichier?
    Par mirella dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2002, 15h56

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