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 :

Valeur de "this" ?


Sujet :

JavaScript

  1. #1
    Membre très actif Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut Valeur de "this" ?
    Hellooo !

    Je souhaite modifier un tchat (BlaB Ax!).
    D'origine, une fois loggé, il faut attendre une dizaine de secondes avant qu'un bouton "Messages précédents" s'affiche et permette d'afficher les messages postés avant qu'on arrive, et aussi défiler jusqu'au dernier message (en cliquant sur une petite flèche vers le bas qui apparaît une fois les messages chargés).
    J'ai réussi à modifier pour ne plus devoir attendre l'affichage du bouton.
    Je voudrais pousser plus loin en automatisant tout ça.

    Le bouton "Messages précédents" a comme code :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="display:inline-block;margin-bottom:5px;min-height:24px" class="history_button svg_hist x_bcolor_x x_all_rounded" onclick="show_r_history(this)"><b>Voir messages précedents</b></div><br />

    Le bouton "Flèche vers le bas" (pour aller jusqu'au dernier message) a pour code :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="autoscroll" class="x_bcolor_z x_circle svg_down" onclick="ascroll()"></div>

    Bien entendu si j'essaye de remplacer onclick par onload, ca ne marche pas du tout lol

    A quoi correspond "this" dans le code du bouton du "Messages précédents" ?
    Si dans la fonction show_r_history(x) je fais un alert(x), j'obtiens un [object HTMLDivElement] .
    Je voudrais faire un truc genre setTimeout avec show_r_history mais je ne sais que mettre entre les parenthèse pour simuler le "this" .

    Si quelqu'un a une idée

    MErkouiiin

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 124
    Par défaut
    Salut

    As tu essayé onclick="show_r_history('this')"
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut

    As tu essayé onclick="show_r_history('this')"
    'this' avec les guillemets ne marchera pas.

    Citation Envoyé par Couin Voir le message
    A quoi correspond "this" dans le code du bouton du "Messages précédents" ?
    Si dans la fonction show_r_history(x) je fais un alert(x), j'obtiens un [object HTMLDivElement] .
    Dans cette situation, this correspond à la représentation DOM de la <div> cliquée.




    Techniquement : quand l’analyseur HTML rencontre un attribut d’évènement comme onclick, il produit un bout de code source JavaScript, qui est immédiatement passé à l’interpréteur JavaScript. Ce code source est le code contenu dans l’attribut, encapsulé dans une fonction avec un paramètre toujours nommé event :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function (event) {
      show_r_history(this);
    }
    Comme pour addEventListener() :
    • la valeur de this correspond à l’élémént sur lequel le gestionnaire d’évènement a été attaché, en l’occurence la <div> ;
    • l’argument event est un objet fournissant des informations sur l’évènement qui a eu lieu, en l’occurence le "click".




    Citation Envoyé par Couin Voir le message
    Je voudrais faire un truc genre setTimeout avec show_r_history mais je ne sais que mettre entre les parenthèse pour simuler le "this" .
    En dehors de l’attribut onclick, tu n’as pas accès aux valeurs de this et event. Tu dois donc obtenir une référence sur la <div> par tes propres moyens. Je te conseille querySelector(). À toi de trouver le bon sélecteur CSS. Aide-toi de la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    setTimeout(() => {
      const laDiv = document.querySelector();
      show_r_history(laDiv);
    }, 1000);
    Citation Envoyé par Couin Voir le message
    Bien entendu si j'essaye de remplacer onclick par onload, ca ne marche pas du tout lol
    C’est normal, les <div> n’émettent pas d’évènement "load". Mais tu peux surveiller le moment où elles sont ajoutées au DOM avec MutationObserver.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre très actif Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    Hello,

    roh la honte, j'ai totalement zapped ce sujet , désoled

    Pour le coup, la fonctionnalité (aller directement au dernier message) a été ajoutée d'origine sur le tchat lors d'une des dernières mises à jour.

    J’ai juste changé le délai pour que ca se fasse plus rapidement.

    En tout cas merci d'avoir répondu

    Bonne fêtes

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

Discussions similaires

  1. Valeur double quote dans excel
    Par retraite83 dans le forum Excel
    Réponses: 4
    Dernier message: 22/06/2018, 09h19
  2. Concaténation de plusieurs valeurs : des quotes qui manquent ?
    Par Palsajicoco dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/03/2011, 14h26
  3. Connaitre la valeur d'un this.value avant l'appel de la fonction
    Par beegees dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/01/2009, 14h40
  4. quote dans des valeurs d'une colonne SET
    Par Jean Fi dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/03/2006, 20h16

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