2009-10-23 8 views
-1

Quelqu'un peut-il s'il vous plaît regarder cette fonction javascript et dites-moi me dire ce que je fais mal? Je veux passer en 4 variables. Je sais très peu de javascript.Javascript function help

Merci.

function chg(back,front,left,right) 
    { 
     return test("div#post", "#" + "back", "#" + "front", left, right); 
    } 

Voici le fichier onload

window.onload = function() { 
    function chg(back,front,left,right) 
    { 
     return test("div#post", "#" + "back", "#" + "front", "left", "right"); 
    } 
} 
+0

Vous devrez fournir plus d'informations que cela. Plus précisément, ce que vous essayez de faire, quel est le résultat attendu, ce que vous obtenez à la place. –

+0

Je suggérerais d'expliquer ce que vous essayez d'accomplir (d'où viennent les variables, où vont-elles et que faites-vous pour les faire), offrez le message d'erreur (ou tout autre message/résultat qui suggère vous le faites mal) et un lien vers une page de démonstration si possible. –

+0

Je veux utiliser cette fonction pour changer mes valeurs dynamiquement. Cela fait partie d'un événement onload et se trouve dans un fichier séparé. J'utilise une balise de script inline dans le fichier pour appeler ce fichier onload. – Jim

Répondre

2

Rien est syntaxiquement mal que je peux voir.

  • Voulez-vous dire back au lieu de "back"? (identique à l'avant)
  • Y a-t-il une fonction test définie dans une étendue externe? Que retourne-t-il?
  • Les 4 arguments sont-ils remplis?
  • Pouvez-vous fournir plus de code?
+0

Oui, il existe une fonction de test dans un autre fichier. Voici comment je travaille maintenant. Cette fonction de test se trouve dans un fichier qui gère tous les événements onLoad. La raison pour laquelle je veux mettre cela dans une fonction est que je peux changer dynamiquement les couleurs et le remplissage. Maintenant, je me demande si c'est une surcharge même si je ne peux pas le faire. Est-ce possible? BTW: merci pour l'aide. – Jim

+2

vous n'obtiendrez pas une réponse définitive sans avoir affiché le vrai code réel. –

+0

Je l'ai posté au-dessus – Jim

0

Vous n'avez rien fait de mal syntaxiquement. Cependant, deux de vos arguments d'entrée (back et front) ne sont jamais utilisés - vous placez les mots "back" et "front" dans un littéral de chaîne, donc ces arguments ne sont jamais utilisés. Fonctionnellement, c'est impossible à dire. Qu'est-ce que test()? Est-ce une autre fonction déclarée ailleurs? Si oui, il serait utile de voir celui-là aussi.

+0

Salut Rex, merci pour l'aide. Laisse moi te demander ça. Cette fonction peut-elle être utilisée dynamiquement dans une situation de surcharge? Je veux changer ces valeurs à la volée. – Jim

+0

Il est difficile de dire avec cette quantité de contexte, mais il devrait y avoir aucune raison pourquoi pas. –

1

Pour toutes fins utiles, mon code et votre code font exactement la même chose. Peut-être que cela va aider?

function chg(back,front,left,right) 
    { 
     var result; 

     //Pass left & right to the test function 
     result = test("div#post", "#back", "#front", left, right); 

     //Do something with back & front.... 
     //What?... I have no idea. 

     return result; 
    } 
+0

Merci Jimmy. Je ne suis pas un type javascript par tous les moyens et peut-être que le problème est les variables "arrière" et "front" mais pour autant que je pensais, la fonction de test les accepte.Je ne vois pas non plus le besoin d'un retour. Ai-je tort? – Jim

+0

Comme je l'ai dit, mon code et votre code font exactement la même chose. Si vous ne trouvez pas le besoin d'un retour, vous devriez jeter un second regard sur votre code. Essayez de nous dire en mots ce que vous essayez de faire. Par exemple "Je veux définir dynamiquement la hauteur, la largeur et la position d'un div onload" –