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

JavaScript Discussion :

[POO] Récupération d'Events OnClick .


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [POO] Récupération d'Events OnClick .
    Bonjour, je travaille sur googlemap et j'ai quelques problémes à récupérer les événements liés à un bouton ou à une checkbox.

    Le code est simplifié mais la structure et l'ordre est le même.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <html xmlns="http://www.w3.org/1999/xhtml">
    <body onload="initialize()" onunload="GUnload()"><!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>TEST WEB Proto</title>
     
    <script type="text/javascript">
     
     
    function clickVectorCheckbox() { alert("clickVectorCheckbox"+mavariable); }
    function clickDLUCheckbox()    { alert("clickDLUCheckbox"+mavariable);    }
     
    function initialize() { if (GBrowserIsCompatible()) {
     
    var mavariable; 
     
    function ClickMoulinette()     { alert("La moulinette va démarrer !! regarder en bas de page"); }
     
    } } // end of initialize
     
      </script>
      </head>
            <table cellpadding="0" cellspacing="0" width="100%">
    				<tbody><tr>							
                            <INPUT TYPE="CHECKBOX" NAME="VECCHECKbox" ID ="VECCHECK" VALUE=0 UNCHECKED ONCLICK="clickVectorCheckbox()">SHOW VECTOR Layer									
                            <input type="checkbox" name="DLUCHECKbox" id ="DLUCHECK" value=0 UNCHECKED onClick="clickDLUCheckbox()">SHOW DLU Layer 
    				</tr></tbody>
    	   </table>
     
        <input type="button" name="bouton2" value="click me!!" onClick="ClickMoulinette();" >
        <input TYPE="BUTTON" NAME="bouton3" value="click me2!!" onClick="ClickMoulinette();" />    
     
    </body> </html>
    Je déclare plusieurs fonctions, qui ensuite doivent être appellées si l'on clique sur les boutons ou les checkboxes ; OR seul les fonctions définies en dehors la fonction (initialize) sont appellées ???

    Le seule probléme est que ces fonctions doivent pouvoir avoir accés et appellés des objets définis dans "initialize" (comme l'objet mavariable)

    Quelqu'un peut m'aider ? il me manque pas grand chose, et je tourne en rond avec ce probléme depuis 2 jours. Merci pour vos lumiéres

    Il doit s'agir d'un probléme de portée et de vizu des fonctions et variables, mais je n'ai rien trouvé dans la doc qui en parle :o ... aussi j'espére avoir quelques éclairciement. Merci d'avance.
    Coding is thinking

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    a ce que je vois ta "fonction" initialize est en fait un objet
    utilise donc des accesseurs pour retourner ou assigner les valeurs de tes variables à l'intérieur de ta méthode et n'oublis pas de l'initialiser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var myInitialise = new initialize();
     
    function initialize() { if (GBrowserIsCompatible()) {
     
    var mavariable;
     
    function ClickMoulinette() { alert("La moulinette va démarrer !! regarder en bas de page"); }
     
    } } // end of initialize
    tu pourras ensuite utiliser tes méthodes a l'intérieur : myInitialise.ClickMoulinette();

    Bon courage
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut pas mieux
    Merci pour ta réponse qui m'éclaircie un peu, mais cela ne marche pas d'avantage : cad, que quand on click sur les boutons ou les checkboxes, aucune des fonctions n'est appellée...
    est-ce parce que la variable est déclarée dans Initialize() ? je ne comprends pas pourquoi les fonctions ne sont pas appellés ???? ...
    encore besoin de lumiére Merci
    ps : j'ai init la variable ... et déclaré comme conseillé ...

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Salut

    alors je t'ai préparé un petit exemple pour te montrer la portée des variables

    il est très succint mais je pense qu'il t'aidera a comprendre ton erreur

    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
    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
    50
    51
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>portée des variables</title>
    <script type="text/javascript">
     
     
    function porteVariable()
    {
    	try{
    		alert(mavariable);
    	}
    	catch(e){
    		alert(e);
    	}
    }
     
    function porteVariableTrue()
    {
    	try{
    		var myInitialize = new initialize();
    		alert(myInitialize.getMavariable());
    	}
    	catch(e){
    		alert(e);
    	}
    }
    function initialize() { 
    		var mavariable = "titi";
     
    		this.setMavariable = function(valeur)
    							{
    								mavariable = valeur;
    							}
    		this.getMavariable =function(){
    								return mavariable;
    							}
    		//appelé à l'instanciation de mon objet					
    		alert(mavariable);
    } // end of initialize
     
     </script>
    </head>
     
    <body>
    <input type="button" value="voir ma variable" onClick="porteVariable()" >
    <input type="button" value="vraiment voir ma variable" onClick="porteVariableTrue()" >
    </body>
    </html>
    n'hésite pas si tu ne comprend pas qq chose ^^
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut un peu plus loin
    Je crois que j'ai mieux compris la portée (et limitation) dans javascript, mais toujours pas ce que je veux. J'ai fait un exemple super simple avec googlemaps pour montrer le pbl de m... que j'ai depuis 15 jours !!!!
    Et aprés on dit que c'est une science lol mdr;

    Voici, un petit exemple qui ne fonctionne pas
    ----------------------------------------------------
    <html xmlns="http://www.w3.org/1999/xhtml">
    <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>TEST WEB Proto</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=abcdefg" type="text/javascript"></script>
    <script type="text/javascript">

    var map;
    var myInitialize = new initialize();

    function clickVectorCheckbox() { myInitialize.myLoadData(); }
    function pushMyButton() { myInitialize.mySaveData(); }

    function initialize() { if (GBrowserIsCompatible())
    {
    map = new GMap2(document.getElementById("map_canvas"),{draggableCursor:"crosshair"});
    this.myLoadData = function() { alert("LoadData"); }
    this.mySaveData = function() { alert("SaveData"); }
    map.setCenter(new GLatLng(22.29,114.17), 14);
    }}
    </script> </head>
    <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 80%; height: 80%"> </div>
    <div>
    <form name="form_1" action="">
    <input type="checkbox" name="VECCHECK" id="VECCHECK" value="VEC" checked=checked onclick="clickVectorCheckbox();"> SHOW VECTOR Layer
    <input type="button" name="Save_Button" id="Save_Button" value="Save Data" onclick="pushMyButton();">
    </form>
    </div></body></html>
    ---------------------------------------------------- et je ne comprend PAS javascript (c'est pas logico mathématique) et juste avant, le bouton fonctionnait, mais plus maintenant .. Pourquoi ? hum je recommence à m'énnerver ...

    Autre petite question : comment mettre la checkbox à faux dés le début ?

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut un peu plus loin dans js bugs (pléonasme)
    Je crois que j'ai mieux compris la portée (et limitation) dans javascript, mais toujours pas ce que je veux. J'ai fait un exemple super simple avec googlemaps pour montrer le pbl de m... que j'ai depuis 15 jours !!!!
    Et aprés on dit que c'est une science lol mdr;

    Voici, un petit exemple qui ne fonctionne pas
    ----------------------------------------------------
    <html xmlns="http://www.w3.org/1999/xhtml">
    <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>TEST WEB Proto</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=abcdefg" type="text/javascript"></script>
    <script type="text/javascript">

    var map;
    var myInitialize = new initialize();

    function clickVectorCheckbox() { myInitialize.myLoadData(); }
    function pushMyButton() { myInitialize.mySaveData(); }

    function initialize() { if (GBrowserIsCompatible())
    {
    map = new GMap2(document.getElementById("map_canvas"),{draggableCursor:"crosshair"});
    this.myLoadData = function() { alert("LoadData"); }
    this.mySaveData = function() { alert("SaveData"); }
    map.setCenter(new GLatLng(22.29,114.17), 14);
    }}
    </script> </head>
    <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 80%; height: 80%"> </div>
    <div>
    <form name="form_1" action="">
    <input type="checkbox" name="VECCHECK" id="VECCHECK" value="VEC" checked=checked onclick="clickVectorCheckbox();"> SHOW VECTOR Layer
    <input type="button" name="Save_Button" id="Save_Button" value="Save Data" onclick="pushMyButton();">
    </form>
    </div></body></html>
    ---------------------------------------------------- et je ne comprend PAS javascript (c'est pas logico mathématique) et juste avant, le bouton fonctionnait, mais plus maintenant .. Pourquoi ? hum je recommence à m'énnerver ...

    Autre petite question : comment mettre la checkbox à faux dés le début ?

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Ca marche mais trop bizarre
    voici un code qui fonctionne et fait ce que je voulais, mais il n'y a plus du tout de déclaration de l'objet initialize et ça marche n'importe nawak, pff; voici le 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <html xmlns="http://www.w3.org/1999/xhtml">
    <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>VOLCANO WEB Proto</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=abcdefg" type="text/javascript"></script>
    <script type="text/javascript">
     
    var map;
     
    function initialize() { if (GBrowserIsCompatible()) {
     
        map = new GMap2(document.getElementById("map_canvas"),{draggableCursor:"crosshair"});
        map.setCenter(new GLatLng(22.29,114.17), 14);
     
        SaveData = function()   {  alert("SaveData");   }
        clickDLUCheckbox = function() { alert("checkdata"); }
    } }
    </script> </head>
     
    <body onload="initialize()" onunload="GUnload()">    
    <div id="map_canvas" style="width: 80%; height: 80%">   </div>
    <div>
                <form name="form_1" action="">
                <input type="checkbox"  id="DLUCHECK"  onclick="clickDLUCheckbox();"> SHOW DLU Layer
                <input type="button"  id="Save_Button" value="Save Data" onclick="SaveData();" />
            </form>
    </div>
    </body>
    </html>
    et bon va comprendre, moi j'arrêtte ...
    J'avais posé la question et l'on m'avait dit que cela ne se faisait pas !!! qu'il fallait faire autrement !!! puaaahhhh

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

Discussions similaires

  1. [POO] Récupération liste clef valeur depuis une applet
    Par Phoxtrot dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/04/2008, 12h59
  2. Events onclick provoque scrolling top page
    Par speedev dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/12/2007, 12h32
  3. [asp.net C#] Event onclick ne fonctionne pas
    Par vin100H dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/08/2007, 10h35
  4. [VB.NET] ImageButton dynamique et event onclick
    Par skoozy dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/06/2006, 14h44
  5. document.createElement & event onclick
    Par tartanfion dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/01/2006, 18h33

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