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 :

Appel d'une fonction dans une fonction qui rend 'is not a function'


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Appel d'une fonction dans une fonction qui rend 'is not a function'
    Bonjour

    Après m'être tordu la tête a essayer de comprendre mon problème, je me résous a faire appel a votre aide. Alors voilà l'histoire, j'ai une fonction toute bête link_shema_treeview(current_container, target_container ) , qui est dans le <head> de mon fichier php. Selon les conditions, elle débouche sur l'exécution d'une autre fonction current_container(id, way) , elle même présente dans le <head> de ce même fichier php. Je suis sûr que la fonction current_container fonctionne, car elle marche bien pour les autres appels dans ma page, mais dès que je l'appelle via la fonction link_shema_treeview, hé ben là c'est le drame, j'ai un jolie current_container is not a function Et si je remplace l'appel de cette fonction par une autre, ben là ça marche. Je suis perdu ...

    code JS link_shema_treeview()
    Code : 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
     
    function link_shema_treeview(current_container, target_container)
    {
    	var span_id_current = 'span#treeview_' + current_container;
    	var span_id_target = 'span#treeview_' + target_container;
     
    	if($(span_id_current).prev().attr('class') == 'hitarea expandable-hitarea')
    	{
    		$(span_id_current).prev().click();
     
    		if($(span_id_target).prev().attr('class') == 'hitarea collapsable-hitarea')
    		{
    			current_container(3, '<i><b>text</b></i><img/><i><b>text</b></i>'); // Renvoie erreur js : current_container is not a function
    		}
     
    		else
    		{
    			$(span_id_target).click(); // OK !!!
    		}
    }
    Cette fonction est simplifié qd à la réalité. En vérité, l'appel de la fonction current_container() est récupéré par un eval :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    current_container(3, '<i><b>text</b></i><img/><i><b>text</b></i>');
    est en réalité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    eval($(span_id_target).attr('onClick'));
    Je pense que mettre le code de la fonction current_container() n'est pas nécessaire, vu que je sais quelle marche, mais je peux tjs la mettre a votre demande.
    En tout cas toutes j'espère avoir été clair dans l'énoncé de mon problème. Toutes pistes seront les bien venues

    Merci !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

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

    Tu peux nous montrer comment tu utilises link_shema_treeview() ?
    Le problème doit venir de là...


    devyan

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    En espérant bien te montrer se que tu attends :

    la fonction link_shema_treeview() est appelée à l'évènement onclick sur la cellule d'un tableau. Ce tableau est généré par php via une requette ajax.

    Voilà la fonction php qui génère le code de la cellule en question:

    Code : 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
     
    function container_cell_html($parent_container, $container)
    {
    	$infos_container = get_info_container($container);
    	$size = $infos_container['size_x'] * $infos_container['size_y'] * $infos_container['size_z'];
    	$free_places = $size - (count_element_in_container($container));
     
    	$html = '	 shema_container_cell" style="background-color: #'.color_font_shema_container($container).';"
    				onMouseOver="montre(\'Free places : '.$free_places.' / '.$size.'\');"
    				onMouseOut="cache();"
    				onClick="link_shema_treeview('.$parent_container.', '.$container.');"
    				>
    		'.$infos_container['name_type'].'<br/>'.$infos_container['name'];
     
    	return $html;
    }
    au niveau du code source de la page, ca nous donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <td	id="current_container_table_C_1_L_4_S_1"
    	class="shema_cell shema_container_cell"
    	style="background-color: rgb(139, 184, 0); height: 32px;"
    	onmouseover="montre('Free places : 3 / 5');"
    	onmouseout="cache();"
    	onclick="link_shema_treeview(2, 3);"
    	align="center"
    >
    		Text
    </td>
    C'est bien ça que tu voulais voir ?

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Effectivement,

    2 n'est pas une fonction...


    Il y a un problème dans ton code PHP semble-t-il.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Ca y est la solution a enfin été trouvé !!!!!

    Merci Devyan, c'est ta remarque qui m'a mis sur la voie.

    En fait dans ma fonction link_shema_treeview(), j'ai une variable d'entrée qui a le même nom que la fonction que j'appelle : current_container. JS se trompe !!!! Il interprète la variable au lieu de faire la fonction.
    Le problème a été corrigé en modifiant le nom de la variable d'entrée

    year !!!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/03/2013, 12h05
  2. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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