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 :

Code hexadecimal non traduit avec .text


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut Code hexadecimal non traduit avec .text
    Bonjour.

    J'ai un div recherche que j'étends ou rétracte lors de l'appuie sur une fleche ( &#9660 ).
    De base le div de recherche est caché et j'ai une fléche qui pointe vers le bas. Lors de l'appuie sur la fleche, j'ai bien mon div qui s'affiche mais j'aimerai aussi que la fleche pointe vers le haut.
    Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <h2>Recherche <span id="wrap">&#9660</span></h2>
     
    <script>
     $("#wrap").click(function() {
                    ($(this).text() === "&#9660") ? $(this).text="&#9650" : $(this).text="&#9660";
                    $("#recherche").slideToggle("slow");
                    });
    </script>
    Seulement au lieu de m'afficher la fleche, j'obtiens le code "&#9650"

    Quelqu'un aurait une solution pour afficher l'afficher correctement?

    Merci.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    et tu la sors d'où cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($(this).text() === "&#9660") ? $(this).text="&#9650" : $(this).text="&#9660";

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut
    Ah oui pardon.
    Comme j'ai essayé avec plusieurs façon (nottament avec "innerHTML"), je me suis embrouillé les pinceax
    En fait c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ($(this).text() === "&#9660") ? $(this).text("&#9650") : $(this).text("&#9660");

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Quoiqu'il arrive .test() n'interpréte pas le code hTML si tu fais $(this).text('<b>texte</b>') tu auras <b>texte</b> et non texte alors autant passer par .html() ou mieux par une classe avec .toggleClass().

    Dernier point ce n'est pas &#9650 mais &#9650 ; si tu ne veux pas d'embrouille. ( nota : le ; est a recoller).

  5. #5
    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
    Il faut tester le caractère UTF-8 '▼'

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <span id="wrap"></span>

    Impossible de mettre le code dans le format correct ! Il se transforme automatiquement !

    Il faut lire jObj.html() == '▼'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $( "#wrap" ).on( "click", function(){
      var jObj = $( this );
     
      if ( jObj.html() == '▼' ) {
        jObj.html( '▲' );
      } else {
        jObj.html( '▼' );
      }
    });

    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.)

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 226
    Par défaut
    Merci pour vos réponses.
    @NoSmoking : quand vous parlez d'utiliser toggleClass, vous voulez dire avoir 2 classes avec une fleche differente chacune que j'affiche ou que je cache?

    @danielhagnoul :
    j'ai repris votre 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
     
    <h2>Recherche <span id="wrap">▼</span></h2>
     
    <script>
    $( "#wrap" ).on( "click", function(){
      var jObj = $( this );
     
      if ( jObj.html() == '▼' ) {
        jObj.html( '▲' );
      } else {
        jObj.html( '▼' );
      }
    });
    </script>
    mais ça ne change pas la fleche.
    Par contre si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $( "#wrap" ).on( "click", function(){
      var jObj = $( this );
     
      if ( jObj.html() == '▼' ) {
        jObj.html( '▼' );
      } else {
        jObj.html( '▲' );
      }
    });
    La la fleche change de sens au 1er clic mais pas aux suivants.
    C'est peut-être parce que jObj.html() ne lit pas '▼' correctement? ( la condition "jObj.html() == '▼' " n'etant pas vérifiée)

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

Discussions similaires

  1. Vue non compatible avec le code du modèle associé
    Par wassimha dans le forum Débuter
    Réponses: 0
    Dernier message: 26/08/2011, 12h36
  2. Code javascript marche avec IE non plus avec firefox
    Par m3allem001 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/02/2010, 12h04
  3. affichage à l'ecran non conforme avec le code
    Par abira dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/03/2009, 09h53
  4. bmp non visible dans un bouton avec texte
    Par CAMIC dans le forum Windows
    Réponses: 8
    Dernier message: 27/03/2007, 10h24
  5. code non managé avec interface managée ...
    Par izbad dans le forum MFC
    Réponses: 6
    Dernier message: 19/12/2005, 16h36

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