Frage

Ich bin ein Anfänger im Umgang mit Prototype-Bibliothek. Ich möchte wissen, wie wir mehrere Argumente zu onSuccess / onFailure Funktion in Prototype passieren können? Zum Beispiel: -

new Ajax.Request('testurl',{
        method: 'post',
        parameters: {param1:"A", param2:"B", param3:"C"},
        onSuccess: fnSccs,
        onFailure: fnFail
        })

In meinem Erfolg Funktion fnSccs: -

function fnSccs(response)
{
    alert(response.responseText);
}

Ich möchte ein neues Argument fnSccs Funktion zu übergeben. Wie ist das möglich. Vielen Dank für jede Hilfe.

War es hilfreich?

Lösung

Sie können Ihren Erfolg Funktion in eine andere wickeln, die den gewünschten Parameter recieves und gibt Ihre alte Funktion zurück:

new Ajax.Request('testurl',{
                method: 'post',
                parameters: {param1:"A", param2:"B", param3:"C"},
                onSuccess: mySuccess('myValue1', 'myValue2'),
                onFailure: fnFail
                })

function mySuccess(param1, param2){
  return function(response){ // Your old success function
    alert(param1);  // The parameter still accessible here
    alert(param2);
    alert(response);
  }
}

Was passiert, ist, dass, wenn Sie anrufen mySuccess(...) Ihre alte Funktion zurückgegeben wird, aber Sie haben noch Zugriff auf die Parameter haben, weil die Variablen auf der äußeren Schließung .

Sie können prüfen, der Lauf Schnipsel hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top