2012-04-07 6 views
2

Ich habe einen Anker mit einem onclick-Ereignis erstellt, das eine JavaScript-Funktion aufruft. Die JavaScript-Funktion gibt einen Wert zurück. Ich möchte diesen Wert in einer anderen JS-Funktion verwenden.return onclick value zu einer JavaScript-Funktion

z. B. loading() wird einen Wert zurückgeben, der an eine andere js-Funktion übergeben wird. Wie kann ich den Rückgabewert erfassen und speichern und diesen Wert dann an diese Funktion übergeben?

+1

Wie unten durch Ihre Kommentare hervorgeht, haben Sie einen schlechten Job in dieser Frage getan genau zu erklären, was du brauchst. Vielleicht sollten Sie Ihre Frage bearbeiten, um genau zu klären, was die Benutzererfahrung (Benutzeraktionen und Systemantworten) sein sollte. – Phrogz

+0

stimme ich zu ... aber seit deinem neuen, keine downvotes. –

Antwort

2

Können Sie die äußere Funktion einfach mit der inneren Funktion aufrufen?

function outerFunc(a) 
{ 
    alert(a); 
} 

function innerFunc() 
{ 
    return 'test'; 
} 

onclick="outerFunc(innerFunc());" 

Oder, wenn Sie den Rückgabewert in einem anderen Ereignis verwenden müssen, legen Sie eine Variable fest.

var retval; 
function outerFunc() 
{ 
    if(retval) alert(retval); 
} 

function innerFunc() 
{ 
    retval = 'test'; 
    return retval; 
} 

onclick="return innerFunc();" 

In someother Onclick-Ereignis

onclick="return outerFunc();" 
+0

Situation ist so, dass onclick Wert zurückgibt, den ich speichern und für andere js Funktion weitergeben muss, die beim Klicken auf einen anderen Anker aufgerufen werden. – Ganesh

+0

Ahh .. versuche dann eine Variable zu setzen. Ich werde mein Beispiel aktualisieren. –

+0

-1 für die Verwendung des 'onclick'-Attributs, anstatt den Event-Handler in JavaScript anzuhängen. – Phrogz

-1

So etwas ähnliches?

<a onClick="loading(myFunction());"> 

Wenn myFunction() ist Ihr ursprünglicher onClick Code, wird es später zu loading erhalten weitergegeben.

+0

eigentlich möchte ich diesen Rückgabewert speichern und danach nicht im selben Call verwenden. – Ganesh

0

a) Verwenden Sie einen global variable zB (also)

var passVar=null; 

function A(){ 
    //set value 
    passVar='hello'; 
} 

function B(){ 
    //get value 
    alert(passVar); 
} 

b) wenn Ihre Funktion auf eine andere Seite ist, die den gespeicherten Wert verbraucht, Sie verwenden möglicherweise setItem(), getItem() und erweiterte Funktionen von Browsern, um rowser session storage Mechanismus

zu verwenden
+0

@ Phrogz- es funktioniert mit Cookies, da ich den Rückgabewert auf einer anderen Seite verwenden möchte, ich habe das in Cookie gespeichert und es wieder verwendet, allen Dank für Hilfe. – Ganesh

0

Sie erwähnten in einem Kommentar, dass Sie es für später speichern möchten. Sie können die Tatsache nutzen, dass JavaScript-Funktionen Verschlüsse sind und somit den Zugriff auf lokale Variablen im gleichen Umfang erklärt haben:

var clickedValue; // No need to set a value here, just declare is 

myAnchor.addEventListener('click',function(evt){ 
    // Call the other function, setting the 'this' scope to be the anchor 
    // The scope of the variable set it the one above 
    clickedValue = someFunction.call(myAnchor,evt); 
},false); 

/* later on… */ 

otherFunction(clickedValue); 
+0

Ich habe meine Antwort bearbeitet, um der Tatsache Rechnung zu tragen, dass Sie in einem Kommentar erwähnt haben, dass Sie den zurückgegebenen Wert nicht sofort verwenden möchten. – Phrogz

Verwandte Themen