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 :

Variable not defined alors que ça fonctionnait avant !


Sujet :

jQuery

  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut Variable not defined alors que ça fonctionnait avant !
    Cette question que j'avais posée naguère était résolue mais après je ne sais quelle modification, ça ne fonctionne plus !

    Voici le Javascript :
    Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    /**
     * masquerTousCommentaires
     * Masque tous les commentaires aux messages affichés dans la page
     */
    function masquerTousCommentaires(langue)
    {
    	alert($("#blocMessage20 .bar_links #linkAfficheComm20").html());
     
    	$(".divMessage").each(function()
    	{
    		if($(".blocMessage .bar_links .linkAfficheComm", $(this)).html() !== null)
    		{
    			var obj = $(".blocMessage .bar_links .linkAfficheComm", $(this)); // lien à modifier
    			var inithtm = obj.html(); // contenu complet du lien
    			var initfct = obj.attr("href"); // cible du lien 
    			var texte = '';
    			var nbcomm = $(".divComments input", $(this)).val();
     
    			if(langue == 'fr')
    			{
    				texte = 'commentaire';
    			}
    			else if (langue == 'es')
    			{
    				texte = 'comentario';
    			}
    			else if (langue == 'en')
    			{
    				texte = 'comment';
    			}
     
    			if(nbcomm > 1)
    			{
    				texte = texte + 's';
    			}
     
    			obj.attr("href",initfct.replace(/masque/i, "affiche"));
    			obj.html(inithtm.replace(obj.text(), nbcomm + ' ' + texte));
    			$(".divComments", $(this)).empty();
    			$(".divComments", $(this)).hide();
    			$("#comm_form", $(this)).empty();
    			$("#comm_form", $(this)).hide();
    		}
     
    	});
    	$("#menumasque").empty();
    	$("#td_menu_sup").attr("width", "0");
    	$("#cpt_comm").val("0");
    }

    Le alert en début de fonction m'affiche bien ceci :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <img src="images/btn_bubble.png" align="absmiddle" height="25px" width="25px">
    							<span class="nbreponses" title="Nombre de réponses">
    								2							</span>

    Mais Firebug me dit que ce qui coince est :
    inithtm is not defined
    obj est bien valorisé puisque un alert(initfct); me donne bien son contenu.

    Une idée à me soumettre pour débuguer ça ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($(".blocMessage .bar_links .linkAfficheComm", $(this)).html() !== null)
    curieux test ...

    a quel moment la fonctione est elle lancée ?
    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
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    a quel moment la fonctione est elle lancée ?
    Suite à clic sur un bouton dans la barre d'entête de la page.

    Afficher les commentaires associés à un ou plusieurs messages affiche ce bouton et le bouton doit effacer tous les commentaires affichés et remettre l'option de chaque message qui masque les commentaires du message à "afficher les commentaires".

    Le test fonctionne puisque j'ai pu faire alert(initfct); et obtenir un résultat.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Sauf peut-être que le alert() se fait sur $("#blocMessage20 .bar_links #linkAfficheComm20") alors que le reste du code se fait sur $("#blocMessage .bar_links #linkAfficheComm")

    Cependant, à part si tu utilises "inihtm" ailleurs dans ton code il n'y a pas de raison qu'il soit "non initialisé" ou même égal à "null" puisque tu as un test en début de bloc...

    devyan

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Pour être plus précis, j'avais fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function masquerTousCommentaires(langue)
    {
    	alert($("#blocMessage20 .bar_links #linkAfficheComm20").html());
     
    	$(".divMessage").each(function()
    	{
    		if($(".blocMessage .bar_links .linkAfficheComm", $(this)).html() !== null)
    		{
    			var obj = $(".blocMessage .bar_links .linkAfficheComm", $(this)); // lien à modifier
    			var inithtm = obj.html(); // contenu complet du lien
    			var initfct = obj.attr("href"); // cible du lien 
    alert(initfct);
    Et j'avais eu le résultat du premier alert avant le if + celui du second dans le if.

    Ce qui coince, comme l'indique Firebug, c'est inithtm.
    Et Firebug signale qu'il n'est pas valorié à ce moment là dans le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj.html(inithtm.replace(obj.text(), nbcomm + ' ' + texte));
    Ceci dit, ça me met la puce à l'oreille parce que l'affichage a changé et il n'y a plus le texte, seulement le nombre de commentaires.

    J'examinerai ça ce soir.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Toujours coincé avec ce truc.

    Il semblerait que ce qui pose problème, c'est le test de nullité de likafficheComm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($(".blocMessage .bar_links .linkAfficheComm", $(this)).html() !== null)
    Même si un message n'a pas de commentaire, donc pas de linkAfficheComm, le programme passe quand même dans la boucle.

    J'ai essayé avec ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($(".blocMessage .bar_links .linkAfficheComm", $(this)).length)
    Idem !

    Le but est ici de n'agir (entrer dans le if) que si linkAfficheComm existe.

    EDIT :
    Non en fait ça fonctionne avec length ; j'avais un point-virgule qui traînait après le if !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. NOPROVIDER_ERROR alors que ca marchait avant
    Par MaarKet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/05/2012, 13h39
  2. Réponses: 2
    Dernier message: 09/04/2011, 18h17
  3. variable not defined
    Par Dermochelys dans le forum IHM
    Réponses: 2
    Dernier message: 02/11/2009, 14h23
  4. Réponses: 5
    Dernier message: 13/12/2007, 11h45
  5. Réponses: 7
    Dernier message: 30/03/2007, 14h58

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