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

jQuery Discussion :

Utilisez le this dans une fonction comme sélecteur


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Par défaut Utilisez le this dans une fonction comme sélecteur
    Bonjour, je suis en train de refactoriser mon script, et j'essaie d'éviter certaines redondances.

    J'ai remarqué que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $('#voyages').on('click', function () {
                if (continentOuvert == false) {
                    $('#voyages i.fas.fa-arrow-up').show(500);
                    $('#voyages i.fas.fa-arrow-down').hide();
    Revenait souvent pour pas mal de mes catégories. L'idée c'est de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $('#voyages i.fas.fa-arrow-up').show(500);
    $('#voyages i.fas.fa-arrow-down').hide();
    dans une fonction, et d'utiliser le sélecteur écoutés pour déterminer dans quelle id seront affichés/masqués les icones " i.fas.fa " (dans ce cas dans l'id #voyage, mais après il y a l'id #continent etc ...)

    J'essaie de le faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                function arrowUp() {
                $('this i.fas.fa-arrow-up').show(500);
                $('this i.fas.fa-arrow-down').hide();
            }
    ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                function arrowUp() {
                $(this + ' i.fas.fa-arrow-up').show(500);
                $(this + ' i.fas.fa-arrow-down').hide();
            }
    Où le this doit prendre la valeur du sélecteur dans $('#voyages').on('click', function ()

    Cela ne fonctionne pas, je pense que je m'y prends mal, kkun pourrait me donner une piste aider à me débloquer s'il vous plait ?

    Merci d'avance

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    si les elements sont contenu dans this ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $(this).find(' i.fas.fa-arrow-up').show(500);
     $(this).find(' i.fas.fa-arrow-down').hide();
    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
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    le plus malin ici serait de passer l'id en paramètre de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function arrowUp( id )
    {
        $(id+' i.fas.fa-arrow-up').show(500);
        $(id+' i.fas.fa-arrow-down').hide();
    }
    et pour l'appel :
    ou plus généralement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arrowUp( '#'+$(this).id ); // (si tu es sûr que c'est toujours un id, et pas une classe)

  4. #4
    Membre averti
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Mai 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Mai 2019
    Messages : 61
    Par défaut
    Merci pour vos réponses !

    j'ai finalement utilisé ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function arrowUp(id) {
                $(id + ' i.fas.fa-arrow-up').show(500);
                $(id + ' i.fas.fa-arrow-down').hide();
            }
    puis appel avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    arrowUp('#'+$(this).attr('id'));
    je sais pas pourquoi ça marchait pas avec find()

  5. #5
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ça fontionnerait sans doute avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $(this).find('.fas.fa-arrow-up').show(500);
     $(this).find('.fas.fa-arrow-down').hide();
    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 !

  6. #6
    Invité
    Invité(e)
    Par défaut
    @SpaceFrog

    Oui, s'il le laisse dans le cours du script.

    Mais NON, puisqu'il le met dans une fonction (arrowUp), où $(this) ne sera pas défini.

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

Discussions similaires

  1. Le this dans une fonction privée
    Par GalliezB dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/01/2014, 23h56
  2. this dans une fonction anonyme
    Par Paul TOTH dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 11/01/2012, 13h23
  3. [Dojo] Portée de "this" dans une fonction
    Par Zineb1987_UNI dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 21/12/2009, 17h08
  4. Utiliser un " dans une fonction comme séparateur
    Par nuFox dans le forum WinDev
    Réponses: 3
    Dernier message: 18/02/2009, 16h38
  5. Utilisez MinimizeName() dans une fonction
    Par James_ dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/05/2004, 18h05

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