2 votes

Utiliser jQuery .append() dans une fonction ?

J'ai essayé d'appeler une fonction qui ajoute des balises html à l'intérieur de balises div préexistantes, comme ceci :

function loadTextbox(jsonUrl,divId){
$.getJSON(jsonUrl, function(json) {
    alert('hello');
    $('#' + divId).append('<h2></h2>')
        .find('h').append(json.heading).attr(json.config.backgroundConfig)
        .find('h').attr(json.config.headingConfig).append(json.heading).parent()
        .find('p').attr(json.config.bodyConfig).append(json.body);
    })
}

Il s'agit d'un exemple complexe, mais je n'ai pas réussi à faire fonctionner quelque chose où la fonction append() se trouve à l'intérieur d'une autre fonction. J'arrive à faire fonctionner la fonction append() directement à partir du fichier .js, mais sans succès. Je sais également que les appels json fonctionnent car j'utilise un appel et des requêtes identiques pour une fonction différente. Y a-t-il un problème à mettre append() dans une fonction ?

EDIT : Autre remarque, l'alerte ci-dessus ne fonctionne pas telle quelle. Cependant, si elle est déplacée une ligne plus haut (au-dessus de l'appel $.getJSON), elle fonctionne bien. Peut-être est-ce important ? De plus, j'appelle la fonction directement en dessous dans le même fichier .js comme suit :

loadTextbox("./json/textbox.json","text");

0voto

David Hedlund Points 66192

Si votre alerte n'apparaît jamais, alors qu'elle se trouve dans la fonction, cela signifie que vous ne recevez pas de réponse.

Si vous utilisez Firefox, utilisez le plugin Firebug pour voir si une exception est levée côté serveur.

-1voto

Rudie Points 8975

Vous pourriez vouloir vérifier les docs :

jQuery.getJSON( url, [ data ], [ success(data, textStatus, jqXHR) ] )

Ce qui signifie : votre callback est le 3e argument, pas le 2e.

-- modifier

Donc ce que tu veux faire c'est :

$.getJSON(jsonUrl, '', function(json) {
  ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X