/ / Chiamata alla funzione jQuery con la funzione Javascript - javascript, jquery, json, function, getjson

Chiamare la funzione jQuery con la funzione Javascript - javascript, jquery, json, function, getjson

Avere qualche problema nel farlo funzionare, in particolare con $ .getJSON (). Voglio racchiudere la funzione getJSON da jQuery in una funzione Javascript in questo modo:

function reload_data() {
$.getJSON("data/source", function(data) {
$.d = data;
});
}

Ma quando chiamo reload_data () non esegue la funzione jQuery all'interno. Qualche idea?

risposte:

3 per risposta № 1

Non ci stai dicendo abbastanza, farò solo una supposizione!

Se si chiama questa funzione e quindi si verifica immediatamente $ .d per i risultati, non funzionerà perché non si concede il tempo per il asincrono Richiesta AJAX per completare ...

reload_data();
alert($.d); // What?!  It"s not displaying the updated results?!

Dovrai utilizzare una struttura di callback, come jQuery, per farlo funzionare ...

reload_data(function() {
alert($.d);
});

function reload_data(func) {
$.getJSON("data/source", function(data) {
$.d = data;
//Execute the callback, now that this functions job is done
if(func)
func();
});
}

2 per risposta № 2

Metti un avviso nella funzione per sapere che è stato chiamato.

e un tentativo di aggirare la chiamata jQuery per vedere se c'è un errore

function reload_data() {
alert("reload_data  start");
try{
$.getJSON("data/source", function(data) {
$.d = data;
});
}
catch (ex){
alert ("error in jQuery call:" + ex)
}
}

0 per risposta № 3

Grazie per l'aiuto a tutti, ma la soluzionein realtà era davvero semplice. Era solo una questione di sincronizzazione. La pagina si stava ricaricando prima che i dati JSON venissero ricaricati, quindi è per questo che non stavo vedendo un errore.