CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 0:58

Détails techniques


Version du forum : Invision
Poste occupé : Fondateur
Navigateur(s) concerné(s) : Mozilla Firefox
Personnes concernées par le problème : Moi uniquement
Lien du forum : http://twenty-one.forumactif.com/forum

Description du problème

Salutations o/
Suite au sujet suivant : http://forum.forumactif.com/t388245-user_id-en-valeur-d-un-attribut-attache-a-ipbwrapper?nid=16#3260449

J'ai crée une section (visible pour les admins seulement) et j'essaie d'appliquer un certain CSS à celle-ci si la valeur userid du membre est égale à 2 (la mienne pour le moment)... Mais cela ne semble pas fonctionner. Pourtant, le JS est bien chargé, la feuille CSS (externe) ne contenant que les codes liés à ça également, mais rien. J'ai essayé donc en plaçant le code JS après l'import de la feuille CSS.

Voici comment la partie en question de mon template overall_header est structurée:

Code:
<link rel="stylesheet" href="lien_feuille_css_en_question" type="text/css" />

[...]

       <script type="text/javascript">
  $(function() {
        $('#ipbwrapper').attr('data-userid', _userdata["user_id"]);
    });
  </script>

Une idée ? Je ne trouve rien de clair et rapide.
J'espère être assez clair :l

Merci d'avance ~


Dernière édition par Arcadia-forum le Mer 12 Oct 2016 - 19:39, édité 1 fois

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par MasDan le Mer 12 Oct 2016 - 7:31

Bonjour Arcadia-forum,

Pour appliquer du CSS seulement pour le membre 2, utiliser un code comme celui-ci.
[code]#ipbwrapper[data-userid="2"] { color: #FF0000; }[code]

MasDan
*****

Masculin
Messages : 854
Inscrit(e) le : 24/05/2011

http://projetaum2.forumactif.com/
MasDan a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 10:04

Coucou,
J'ai oublié de donner un exemple du CSS, mais oui, j'ai bien procédé de la sorte :

#ipbwrapper[data-userid="2"] .f_bb[data-carte="Les quêtes"] .f_lpa {display: none}
#ipbwrapper[data-userid="2"] .f_bb[data-carte="Les quêtes"] {position: absolute;top: -100px;left: 0}


Mais toujours rien :/

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Walt le Mer 12 Oct 2016 - 10:48

Bonjour,

Vous êtes certain que le nom du forum est "Les quêtes", sans HTML ? Si je regarde un autre de vos forums, je vois que vous avez inséré des balises strong dans le titre du forum, donc ça donne :
Code:
<div class="f_bb" data-carte="Le <strong>Sas</strong> de sécurité" data-type="Pas de nouveaux messages">

Et le sélecteur n'est donc pas:
Code:
#ipbwrapper[data-userid="2"] .f_bb[data-carte="Le Sas de sécurité"] .f_lpa

Mais :
Code:
#ipbwrapper[data-userid="2"] .f_bb[data-carte="Le <strong>Sas</strong> de sécurité"] .f_lpa

En outre, je crois qu'il existe une variable dans le template vous permettant d'afficher l'id du forum, ça serait peut-être plus pratique que le nom dans cet attribut data-carte.

Cordialement,
Walt

Walt
Modéractif
Modéractif

Masculin
Messages : 1411
Inscrit(e) le : 08/09/2015

Walt a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 11:03

Bonjour Walt,
Merci pour votre réponse.

Le titre du forum "Les quêtes" est clean et ne contient aucune balise HTML quelconque (strong y compris), j'y ai veillé. :B Le problème est que lorsque le forum est chargé et que j'ouvre l'inspecteur pour y insérer par exemple le code CSS que j'ai donné plus haut en exemple, ça fonctionne. Du coup, je ne sais pas trop quoi faire, mais la seule théorie qui me vient en tête est que le CSS charge après le JS qui permet de changer la valeur de l'attribut data-userid. :l

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Walt le Mer 12 Oct 2016 - 11:38

Premièrement vous avez un script erroné :
Code:
$(function(){if($(".f_bb[data-carte="Les quêtes"]")){$('body').addClass('tempora...

Vous utilisez des guillemets pour délimiter votre sélecteur, mais vous en utilisez également au sein du sélecteur donc ça pose problème :
Code:
$(".f_bb[data-carte="Les quêtes"]")

Il vous faut remplacer par ceci :
Code:
$(".f_bb[data-carte='Les quêtes']")

A cause de cette erreur de script, le script qui devrait insérer l'id ne le fait pas, donc votre CSS ne peut pas être pris en compte :
Code:
<div id="ipbwrapper" data-userid="0" data-userrep="0">

J'ai un data-userid égal à 0 alors même que je suis connecté. Smile

Walt
Modéractif
Modéractif

Masculin
Messages : 1411
Inscrit(e) le : 08/09/2015

Walt a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 16:07

J'ai supprimé le code JS en question qui ne m'était plus utile, mais le problème reste le même malgré que le data-userid fonctionne :/

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Walt le Mer 12 Oct 2016 - 16:49

Le CSS est toujours présent dans le PA ? Je ne trouve pas dans la feuille de style qui est chargée sur le forum ( http://twenty-one.forumactif.com/0-ltr.css )

Walt
Modéractif
Modéractif

Masculin
Messages : 1411
Inscrit(e) le : 08/09/2015

Walt a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 16:51

Il s'agit d'une feuille CSS externe, je ne peux pas faire autrement :l

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Walt le Mer 12 Oct 2016 - 17:06

OK, donc deux solutions :

  • soit c'est effectivement un souci de chargement inversé, auquel cas vous pouvez tester en déplaçant les feuilles de style externes juste avant la balise de fermeture </head>,

  • soit c'est l'usage même de la feuille de style externe qui pose souci

Walt
Modéractif
Modéractif

Masculin
Messages : 1411
Inscrit(e) le : 08/09/2015

Walt a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 17:13

Je viens de déplacer les feuilles CSS juste avant le </head>, mais aucun changement. Je perds espoir :l

Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Résolu Re: CSS qui ne charge pas avant le code JS.. ou je ne sais pas

Message par Arcadia-forum le Mer 12 Oct 2016 - 19:39

Re,
Navré du double post. J'ai donc eu recours à la deuxième solution proposée par Walt en transposant le CSS interne à FA dans la feuille de CSS externe et vis versa. La dernière fois que j'avais fait cela, quelques codes ne fonctionnaient pas très bien, mais j'espère que ce sera bon cette fois.

Sinon, problème p-o-m réglé, en espérant ne pas tomber sur d'autres complications. :B
Merci Walt !


Arcadia-forum
*

Messages : 49
Inscrit(e) le : 05/03/2016

http://www.arcadia-forum.com
Arcadia-forum a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum