Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jquery qui ne fonctionne pas sur certaines class ?

    23 juin 2018 à 8:28:22

    Bonjour à tous ! 

    J'ai quelques bases en Jquery mais là j'ai une grosse colle ...

    <a href="#" class="btn btn-primary btn-link float-right btnRepondre" rel="tooltip" title="" data-original-title="Commentaire" editorID="<?php echo $reponse['id']; ?>">
    																			<i class="fas fa-comments"></i>
    																		</a>

    J'ai ce bouton Bootstrap et je lui attribut une classe : btnRepondre, chque bouton a un attribut unique : editorID qui contient l'id d'un éditeur de texte particulier qui devra s'ouvrir en fonction du bouton cliqué (ce bouton est dans une boucle while de requete bdd, donc il y'a pleins de boutons identiques)

    $(".btnRepondre").click(function(){
    				alert("coucou");
    			});

    Avec ce petit bout de code a chaque clique sur le bouton (n'importe lequel) il est censé faire un petit alert.

    Sauf que, et bien rien du tout .. En revanche quand je demanque a jquery de "pister" .btn au lieu de .btnRepondre, ca marche ... Je ne change rien d'autre.

    Et du coup je ne comprends rien puisque mon code est censé fonctionner. Y'a t'il une limite du nombre de classes CSS ? Des noms particuliers à éviter ?

    Merci !

    Nathan



    • Partager sur Facebook
    • Partager sur Twitter
      23 juin 2018 à 10:24:19

      Il n'y a pas de raisons que ton sélecteur ne fonctionne pas.

      Hors mis si des événements liés à ".btn" prennent le dessus sur ton événement ".btnRepondre

      Petit conseil, utilises plutôt la fonction .on() à la fonction ".click()", ".change()" etc ...

      Cela donnerai pas exemple :

      $(".btnRepondre").on('click', function(){
      alert("coucou");
      });



      -
      Edité par BoNux 23 juin 2018 à 10:34:12

      • Partager sur Facebook
      • Partager sur Twitter
        23 juin 2018 à 10:44:26

        Bonjour,

        autre chose : editorID n'est pas un attribut html valide, préfère-lui quelque chose comme data-editor-id :)

        Mais en effet, au vu de ton code ça devrait bien se passer. La classe "btnRepondre" est générée par PHP ou bien ajoutée par JS après coup ?

        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          23 juin 2018 à 18:44:06

          Et bien oui là est tout le problème, je sais que ca devrait marcher puisque avec .btn en plus ca marche ...

          Je vais essayer avec le .on(), déjà entendu parler, jamais utilisé.

          Ouais le HTML je sais c'était vite fait pour voir mais de toute facon j'ai meme pas pu en arriver là haha !

          la classe est dans le HTML php génère le bouton (autant de boutons que de commentaires) donc oui indirectement c'est php qui génère la classe btnRepondre.

          Bon ben merci à vous, je vais essayer d'autres choses.

          C'est un peu chiant parce que sinon je vais devoir faire un truc barbare du style écouter le click sur toutes les classes btn (il peut y en avoir 20 par page facile), et si jamais il y a un attribut : data-editor-id non vide alors effectue le reste.

          C'est moche, c'est pas optimisé, mais ca devrait le faire pour l'instant haha

          • Partager sur Facebook
          • Partager sur Twitter
            23 juin 2018 à 19:42:20

            Ah d'ailleurs tu peux aussi écouter directement le clic sur [data-editor-id], comme ça seuls les éléments avec cet attribut seront écoutés (mais ça ne testera pas si c'est vide). Mais c'est exactement la même chose que d'écouter la classe. Si ça ne marche pas avec la classe, ça ne changera rien…

            As-tu regardé la console au moment où tu cliques, pour voir s'il n'y aurait pas une erreur ? Et que te renvoie console.log($(".btnRepondre")) (code à ajouter dans ton fichier, avant l'écoute par exemple) ?

            • Partager sur Facebook
            • Partager sur Twitter

            Pas d'aide concernant le code par MP, le forum est là pour ça :)

            Jquery qui ne fonctionne pas sur certaines class ?

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown