2009-04-27 5 views
1

Wie mache ich die myFunction visibile für die Inline-Funktion im .ready() Event?Inline-Funktionen und anderer Methodenumfang

$(document).ready(function() { 
    ...stuffs... 
    myFunction(par1, par2, anotherFucntion_callback); 
} 
); 

function anotherFunction_callback(data) { 
..stuffs.. 
} 
+0

Wenn Sie es so stellen, wie es jetzt ist, sollte es funktionieren. myFunction_callback ist global sichtbar. – Rashack

Antwort

1

Ich habe Ihre Frage nicht ganz verstanden. Meinen Sie damit, dass Sie in Ihrem „myFunction_callback (Daten)“ als letztes Argument übergeben möchten:

myFunction(par1, par2, anotherFunction_callback); 

, einschließlich der „Daten“ Parameter?

In diesem Fall wird die Lösung ziemlich Standard, schreibt dies vor, dass man:

var temp = function() { anotherFunction_callback(data) }; 

eine alternative Syntax:

function temp() { myFunction_callback(data) }; 
// even though this looks just like a free function, 
// you still define it inside the ready(function()) 
// that's why I call it "alternative". They are equivalent. 

Im Allgemeinen, wenn Sie eine Funktion mit 1 bis geben wollen oder mehr Argumente für eine andere Funktion verwenden Sie dieses Format. Hier erstellen wir im Grunde eine neue Argumentfunktion, die eine andere aufruft. Die neue Funktion hat Zugriff auf die Variable "data". Es heißt "closure", Sie können mehr dazu lesen. Wenn der Rückruf kein Argument erfordert, können Sie natürlich nur den ursprünglichen Funktionsnamen verwenden.

Ich hoffe, das hilft.

ps: Sie können sogar die Funktionsdeklaration inline einfügen, so dass sie anonym ist: myFunction (par1, par2, function() {myFunction_callback (data)}); Beachten Sie, dass die

$(document).ready(function() {}); 

so ziemlich genau aussieht.

+0

Die erste, die du gesagt hast. Vielen Dank. –

1

Sie verwenden den tatsächlichen Namen der Funktion, das heißt myFunction_callback statt myFunction oder anotherFucntion_callback.

+0

Ich habe das Beispiel falsch eingegeben. Natürlich sind myFunction_callback und anotherFunction_callback identisch. –