2016-06-01 9 views
1

Also, ich habe folgende js Funktion:JS „auf“ Funktion Rückkehr

function check_image(imgs){    
    var img = jQuery(imgs); //This loads the image  
    img.on('load', function(e){ //success 
    var display = 'display';     
    }).on('error', function(e) { //error 
    var display = 'display_none';     
    }); 
    return display;   
}; 

Basierend auf, ob das Bild vorhanden ist oder nicht, ich bin versucht, einen bestimmten Wert zurückzukehren.

Ich muss die display var zurückgeben, aber ich habe eine harte Zeit, warum es nicht funktioniert.

Kann mir jemand helfen?

Dank

+1

Mögliches Duplikat [Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -asynchroner Anruf) – Andreas

+1

es ist kein asynchroner Anruf. Ich muss einfach wissen, wie man einen Wert von der Funktion zurückgibt. –

+0

@stevekim müssten Sie stattdessen Schleife verwenden. – Jai

Antwort

2

Ich denke nicht, Sie direkt einen Wert aus einer On-Funktion zurückgeben kann, da dies wird nur aktiviert, wenn die Ereignis ist aktiviert. Als eine alternative Lösung.

Sie können eine andere Funktion in den Delegierten 'on' aufrufen, um die erforderliche Funktionalität auszuführen.

function check_image(imgs){    
    var img = jQuery(imgs); //This loads the image  
    img.on('load', function(e){ //success 
    updateDisplay('display', $(this));    
    }).on('error', function(e) { //error 
    updateDisplay('display_none', $(this));     
    });  
}; 

function updateDisplay(displayVar, img) { 
    if(displayVar == 'display') { 

    } else if(displayVar == 'display_none') { 

    } 
} 
+0

Vielen Dank. Ich werde es versuchen ! =) –

0

Sie kehren Anzeige aber nicht definieren und Wert für sie. (Wenn Sie var Anzeige schreiben, bedeutet es eine lokale Variable definieren und nicht außerhalb Umfang existieren)

https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx

+0

Vielen Dank für die Antwort. Mir ist bewusst, dass die var-Anzeige eine lokale Variable ist. Ich möchte wissen, wie die innere Variable nach außen geschickt wird, damit sie zurückgegeben werden kann. Hoffe, das macht Sinn. –