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 :

Appel de fonction?


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 66
    Points : 52
    Points
    52
    Par défaut Appel de fonction?
    Bonjour,

    Voila, j'ai un petit problème lors de l'appel d'une de mes fonctions. Cette fonction est située dans un fichier script.js.
    Mais lorsque je l'appel, il met la met en undefined.

    Voila mon appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    body onload="menuSlider.init('menuliste','slide');">
    <?php 
    align();
    ?>
    <div id="centrage" style="position:relative; margin-left:auto; margin-right:auto; width: 955px; box-shadow:4px 4px 2px #B3B3B3; ">
    et voila la fonction placé dans le fichier script.js:
    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
    function align()
    {
     
    	var lmt = document.getElementById('centrage');
    	var container = document.documentElement;
     
    	if(lmt && container)
    	{
    	    var containerHeight;
    	    if (container.innerWidth)
    	    {
                containerHeight = container.innerHeight;		
    		}
    		else
    		{
                containerHeight = container.clientHeight;
    		}
    	    var lmtHeight;
    	    if (lmt.innerWidth)
    	    {
                lmtHeight = lmt.innerHeight;
    			lmtHeight = 600;
    		}
    		else
    		{
                lmtHeight = lmt.offsetHeight;
    			lmtHeight = 600;
    		}
    		var y = Math.ceil((containerHeight - lmtHeight) / 2);
    		var y = Math.ceil((containerHeight - 590) / 2);
    		if(y < 0)
    		{
    			y = 0;
    		}
    		lmt.style.position = "relative";
    		lmt.style.top = y + "px";
    	}
    	if (document.getElementById)
    	{
    		document.body.style.visibility = 'visible';
    	}
     
    }
    Si quelqu'un peut-m'aider a trouver mon erreur.

    Cordialement,

    Ctesias

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est pas avec <?php que tu peux appeler un code JS

    Si tu veux qu'une callback soit déclenchée au chargement de la page, il faut utiliser l'évènement onload de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    window.onload = function () {
      /** TON CODE ICI **/
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 66
    Points : 52
    Points
    52
    Par défaut
    haaa oui merci. En effet cela marche

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 66
    Points : 52
    Points
    52
    Par défaut
    Hop, je reouvre ce post puisque j'ai maintenant un problème de conflit entre deux script.

    Script.js:

    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
    var menuSlider=function(){
    	var m,e,g,s,q,i; e=[]; q=8; i=8;
    	return{
    		init:function(j,k){
    			m=document.getElementById(j); e=m.getElementsByTagName('li');
    			var i,l,w,p; i=0; l=e.length;
    			for(i;i<l;i++){
    				var c,v; c=e[i]; v=c.value; if(v==1){s=c; w=c.offsetWidth; p=c.offsetLeft}
    				c.onmouseover=function(){menuSlider.mo(this)}; c.onmouseout=function(){menuSlider.mo(s)};
    			}
    			g=document.getElementById(k); g.style.width=w+'px'; g.style.left=p+'px';
    		},
    		mo:function(d){
    			clearInterval(m.tm);
    			var el,ew; el=parseInt(d.offsetLeft); ew=parseInt(d.offsetWidth);
    			m.tm=setInterval(function(){menuSlider.mv(el,ew)},i);
    		},
    		mv:function(el,ew){
    			var l,w; l=parseInt(g.offsetLeft); w=parseInt(g.offsetWidth);
    			if(l!=el||w!=ew){
    				if(l!=el){var ld,lr,li; ld=(l>el)?-1:1; lr=Math.abs(el-l); li=(lr<q)?ld*lr:ld*q; g.style.left=(l+li)+'px'}
    				if(w!=ew){var wd,wr,wi; wd=(w>ew)?-1:1; wr=Math.abs(ew-w); wi=(wr<q)?wd*wr:wd*q; g.style.width=(w+wi)+'px'}
    			}else{clearInterval(m.tm)}
    }};}();

    align.js:

    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
    window.onload = function ()
    {
     
    		var lmt = document.getElementById('centrage');
    	var container = document.documentElement;
     
    	if(lmt && container)
    	{
    	    var containerHeight;
    	    if (container.innerWidth)
    	    {
                containerHeight = container.innerHeight;		
    		}
    		else
    		{
                containerHeight = container.clientHeight;
    		}
    	    var lmtHeight;
    	    if (lmt.innerWidth)
    	    {
                lmtHeight = lmt.innerHeight;
    			lmtHeight = 600;
    		}
    		else
    		{
                lmtHeight = lmt.offsetHeight;
    			lmtHeight = 600;
    		}
    		var y = Math.ceil((containerHeight - lmtHeight) / 2);
    		var y = Math.ceil((containerHeight - 590) / 2);
    		if(y < 0)
    		{
    			y = 0;
    		}
    		lmt.style.position = "relative";
    		lmt.style.top = y + "px";
    	}
    	if (document.getElementById)
    	{
    		document.body.style.visibility = 'visible';
    	}
     
     
     
    }

    SUivant l'ordre d'appel, l'un desactive l'autre. Sachant que align.js est mon script de centrage verticale de ma page et script.js, mon script de slider de ma barre de menu..

    HELP ><

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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