web-dev-qa-db-fra.com

Fonction de rappel JQuery .load ()

J'ai vu beaucoup de questions et de solutions à des problèmes comme celui-ci mais rien n'a fonctionné pour moi. J'ai ceci:

function() {
    $("#bdiv").load("bosses.php #icc10n",function(){
        return $("#bdiv").html();
    });
}

Mais ça ne marche pas. Pour clarifier, je veux charger le contenu dans #bdiv puis retourner le contenu de #bdiv. Mais il semble que $("#bdiv").html() soit renvoyé avant que le contenu ne soit chargé, même si je l'ai mis dans une fonction de rappel.

17
Dan
$("#bdiv").load("bosses.php #icc10n",function(data){
    // use the data param
    // e.g. $(data).find('#icc10n')
});
42
Petah

pour autant que je sache, vous ne pouvez pas créer une instruction return dans la fonction de rappel d'une méthode $ .ajax (), $ .post (), $ .get (), etc. Vous pouvez toutefois stocker la valeur 'data' dans une variable déclarée en dehors de la fonction, puis définir la valeur de cette variable lors de l'exécution de la fonction de rappel. Et il existe une variété d'autres options.

1
Danny Bullis

Tu ne peux pas faire ça.

AJAX est asynchrone , ce qui signifie que votre fonction reviendra avant que le serveur envoie une réponse.
Vous devez transmettre la valeur à votre appelant à l'aide d'un rappel, comme le fait $.load.

0
SLaks