2012-12-31 23 views
7

Devo chiamare una funzione dopo che un DIV è stato rimosso dalla pagina.jQuery callback all'interno della funzione remove()

Ho provato ad aggiungere una richiamata in questo modo, ma senza fortuna. Eventuali suggerimenti?

$(foo).remove(function() { 
    stepb(); 
}); 
+0

Forse 'remove(). Done (function() {stepb()});' – mplungjan

+0

controlla questo http://stackoverflow.com/questions/7594817/jquery-remove-callback –

+2

Devo chiedere. Perché non solo '$ (foo) .remove(); stepb(); '? È un problema con il contesto di 'stepb()'? –

risposta

15

Prova questa

$ .quando (. $ ('# Foo') rimuovere()) poi (stepb()) ; [ Esempio1] [1] e [ Esempio2] [2].

$('#foo').remove(); 
stepb(); 

Poiché il metodo remove in jQuery è sincrona, stepb() viene attivata dopo remove() ha finito. Quindi, non è necessario utilizzare $.when().then().

+2

Nota per i futuri lettori prima di copiare e incollare questa assurdità: il metodo 'remove' in jQuery è sincrono, il che significa che qualunque codice verrà dopo verrà garantito eseguito dopo che l'operazione' remove' è stata completata. Quindi usare '$ .when' è ridondante, fare' $ ('# pippo'). Remove(); stepb(); 'invece lo stesso risultato esatto. – Mahn