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 :

Simplification d'un code - variable


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut Simplification d'un code - variable
    Bonjour,
    j'ai un code javascript qui me donne satisfaction et fonctionne;
    cependant il est je trouve très lourd et pas très éléguant, je suis convaincu que l'on pourrais faire mieux, aussi je viens écrire ici afin de voir si comme je le pense on peux utiliser des variables avec jquery.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    $('#1-portrait').mouseover(function(){
        $('#1-nick').addClass( 'photosurvol');
    });
    $('#1-portrait').mouseout(function(){
        $(#'1-nick').removeClass( 'photosurvol');
    });
    $('#1-nick').mouseover(function(){
        $('#1-portrait').css( 'display','block');
    });
    $('#1-nick').mouseout(function(){
        $('#1-portrait').css( 'display','none');
    });	
    </script>
    le fait est que j'ai une multitude d'élement id='xxx-nick' et id='xxx-portrait' (dans cet exemple j'ai mis xxx=1)
    Je génère donc de façon automatique pour chaque valeur de xxx, mon petit bout de code javascript, ce qui finis par faire long vu que j'ai une soixantaine de résultat pour cette valeur.

    N'y a t'il pas moyen de dire en jquery qu'il y a une partie du code qui est une variable ? (dans le cas présent un chiffre de 1 à 3 chiffre variable au sein du nom de l'id)

    Merci.
    Cordialement,
    Casp.

  2. #2
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    En effet, il faut user et abuser des sélecteurs

    - Pour récupérer toutes les div dont l'attribut id termine par "-portrait" : $("div[id$=-portrait]")
    - Pour gérer les événements et récupérer XXX-nick (si tant est que cette dernière se situe à l'intérieur de l'autre). Puis on utilise la fonction qui permet d'activer ou désactiver la class de l'élément : toogleClass. Bien sûr, on imagine que l'élément n'a pas encore la classe au chargement :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("div[id$=-portrait]").on('mouseover mouseout', function(evt) {
      $(evt.currentTarget).find("div[id$=-nick]").toggleClass('photosurvol');
    });

    A noter que tu y gagnerais en simplicité si tu nommais différemment le XXX-nick. Nomme le, par exemple, XXX-portrait-nick. Ainsi le code serait :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("div[id$=-portrait]").on('mouseover mouseout', function(evt) {
      $('#' + $(evt.currentTarget).id + '-nick').toggleClass('photosurvol');
    });

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Petite correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("div[id$=-portrait]").on('mouseover mouseout', function(evt) {
      $('#' + evt.currentTarget.id + '-nick').toggleClass('photosurvol');
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    En effet, merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Super, merci de m'aider à progresser.
    Je vais de ce pas appliquer tout ceci.

    Cordialement,
    Casp.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 29
    Par défaut
    Est ce que vous êtes sûr de vous ?
    Car j'ai essayé mais sans succès.
    Pourtant je comprend la logique, elle paraît bonne, mais cela ne donne pas de résultats :/

Discussions similaires

  1. [MySQL] Simplification d'un code php
    Par sff dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/08/2008, 14h35
  2. simplification d'un code
    Par lolo93 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/04/2008, 11h38
  3. Réponses: 2
    Dernier message: 30/05/2007, 15h04
  4. Simplification de mon code?
    Par totoc1001 dans le forum MATLAB
    Réponses: 6
    Dernier message: 31/01/2007, 16h50
  5. [VBA-E] Aide pour simplification de mon code.
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/05/2006, 11h34

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