nazwałbyś go tak (przechodzącą funkcji zwrotnej jako argument):
myfunction(myCallbackFn);
Zauważ, że nie ma nawiasów po nazwie funkcji przechodząc odniesienie do funkcji jako argumentu. To nie wywołuje funkcji, ale po prostu przekazuje odwołanie do niej, które następnie można wywołać później w ramach własnej funkcji.
Można by określić swoją funkcję, a następnie wywołać funkcję zwrotną w nim tak:
function myfunction(cb) {
cb(arg1, arg2);
}
Uwaga, istnieje wiele metod faktycznie wywołanie funkcji zwrotnej od wewnątrz swojej funkcji niestandardowej. Jeśli wystarczy zadzwonić go normalnie i nie dbają o this
argumentu, można po prostu użyć:
cb();
Jeśli chcesz ustawić this
argument do czegoś, można użyć to:
cb.call(thisArg, arg1, arg2);
Jeśli chcesz przejść aktualnych argumentów lub przekazać tablicę argumentów i ustawić this
argumentu, należy użyć tego:
cb.apply(thisArg, argArray);
Referencje na temat .call()
i .apply()
.
Twój aktualny kod ma javascript błędu w tym obszarze:
test(rand_gyumolcs, link, callback){
callback();
};
To nie jest javascript prawny. Nie wiem, co próbujesz zrobić, ale wygląda na to, że jest to połowa deklaracji funkcji i połowa wywołania funkcji. Jeśli chcesz po prostu wywołać funkcję testową, by po prostu użyć tego:
test(rand_gyumolcs, link, callback);
Wewnątrz testu, jeśli chcesz funkcję oddzwonienia być nazywany po animacja jest kompletna, to musiałaby zahaczyć zakończenie funkcję animacji i wywołaj wtedy wywołanie zwrotne.
Nie wydaje się, że działa dla mnie jfriend00 ... to prawdopodobnie mój błąd, ale czy mógłbyś rzucić okiem? Kod jest trochę brudny, wiem, nie jestem tak dobry w jquery ... http://ridewithus.co.cc/test/ –
jeśli widzisz .. chcę, aby owoce po prawej stronie się poruszały, i funkcja testowa to robi, ale mam również funkcję zwrotną, która powinna przenieść je z powrotem do pierwotnej pozycji –
Proszę zaksięgować odpowiedni kod w oryginalnym pytaniu lub podać bardzo szczegółowy opis miejsca kodu na stronie i tego, w jaki sposób uruchamia to. Opublikowaliście stronę internetową z pięcioma osadzonymi stronami skryptów i nie mam pojęcia, o jaki kod pytacie. – jfriend00