2011-12-26 2 views
0

Comment est-il possible de renvoyer la valeur de "summe"? Je vous remercie!return var de img.onload = function()

img.onload = function() { 
    orgWidth = this.width; 
     orgHeight = this.height; 

    factor = orgHeight/480   // 1400/480 = 2.916 
    calcWidth = orgWidth/factor  // 1000/2.916 = 342.935 

    k++; 

    summe += calcWidth; 
    document.images[k].width = calcWidth; 
} 
alert(summe); 
+0

Retour à quoi? – Ryan

Répondre

-1

si vous souhaitez utiliser une valeur de retour, vous devez au moins avoir un nom de fonction pour l'utiliser plus tard comme ceci:

var func_name = function() { 
    orgWidth = this.width; 
     orgHeight = this.height; 

    factor = orgHeight/480   // 1400/480 = 2.916 
    calcWidth = orgWidth/factor  // 1000/2.916 = 342.935 

    k++; 

    summe += calcWidth; 
    document.images[k].width = calcWidth; 
} 

var funcObject; 

img.onload = function() { 
    funcObject = func_name(); 
} 

après cela, vous pouvez utiliser funcObject ne importe où pour utiliser votre valeur de retour

+0

Ne m'a pas aidé. Je suis totalement nouveau à Java. – Kibou

+0

Que voulez-vous exactement faire avec la valeur retournée? –

+0

Javascript @Kibou pas Java. Ils ont des noms similaires et une syntaxe similaire, mais ils sont des langages de programmation très différents, si vous programmez javascript comme Java, vous aurez beaucoup de difficulté, il est beaucoup plus proche de langues comme Scheme et IO –

1
return summe; 

Mais plus important encore, de revenir à quoi? Cela ressemble à un rappel, ce qui signifie que vous définissez une fonction qui s'exécute lorsque l'image se charge, donc il sera automatiquement appelé par le navigateur lui-même et vous ne pourrez rien faire avec la valeur retournée. La seule signification que les valeurs de retour de rappel ont réellement est que return false arrêtera habituellement le bouillonnement d'événement et empêchera l'action par défaut (and should not be overused).

Qu'essayez-vous exactement de faire?

+0

http: //foto.hendrik-schicke .de/index.php/people J'ai besoin du summe pour définir la largeur de conveyor.css ("width", parseInt (summe)); – Kibou

+0

@Kibou alors pourquoi ne pas le faire à l'intérieur de la méthode de rappel? Vous ne savez pas quand l'image va finir de charger, donc le mieux que vous pouvez faire est de le régler quand c'est fait. En passant quand vous utilisez parseInt, vous voulez presque toujours fournir le deuxième paramètre de base de '10', sinon il essaye de deviner la base et vous aurez parfois un comportement très étrange. Essayez par vous 'parseInt (" 010 ")' va deviner la base 4 et retourner 8 –

+0

Aussi, n'utilisez pas l'alerte pour le débogage - utilisez console.log() c'est beaucoup plus utile et cela vous empêchera de quitter les boîtes de dialogue de débogage dans votre code que vos utilisateurs verront. –

Questions connexes