ho questo javascript:jQuery passando una chiamata di funzione attraverso un'altra funzione e l'ordine di esecuzione
triggerAnimation(listItem,toggleToggleRadioListItem(listItem));
function triggerAnimation(listItem,passThruFunction){
listItem.find(".inlineLoading").show();
// pause and then call the toggle function
$("body").animate({opacity: 1}, 1000,
function(){
alert("a");
passThruFunction;
}
);
}
function toggleToggleRadioListItem(listItem) {
alert("b");
};
Cosa è supposta:
- triggerAnimation è chiamato passaggio di un oggetto e una funzione
- triggerAnimation fa un'animazione fittizia (per creare una pausa), poi solleva un avviso e attiva una funzione di callback, che esegue la funzione che è stato passato attraverso.
- la funzione che è stato passato attraverso viene chiamato alzando un avviso.
Sulla base di quanto sopra, mi aspetto che l'avviso A venga visualizzato prima dell'allarme B, ma non è questo il caso. Quello che succede è che (sembra) l'avviso B viene chiamato non appena viene chiamato triggerAnimation(). Perché? Come posso ottenere quel comportamento?
Questa è una bella soluzione, lo ammetto. – fresskoma
era esattamente mia intenzione! Grazie! E 'stato un errore di sintassi da parte mia non averlo passato come funzione nella prima chiamata (come afferma Cesar, sembra che la stavo chiamando, piuttosto che passarla) –