J'ai une question javascript 101. J'utilise une belle bibliothèque graphique (flot) et trace plusieurs graphiques sur une seule page. Chaque graphe est un div, avec un ensemble d'attributs qui indique au graphe d'où récupérer ses données. Par exemple, le code HTML peut être:Looping javascript obtenir des demandes
<div class="line-chart" data-src='/revenue.js'></div>
<div class="scatter-chart" data-src='/users/byweek.js'></div>
<div class="scatter-chart2" data-src='/apps/byweek.js'></div>
Où j'ai deux types de graphiques ici, un nuage de points et une ligne. Idéalement, je serais capable de parcourir les classes et de saisir simplement les données appropriées. Cependant, je suis confus par le contexte de la fonction de rappel, et ne sachant pas quelle div je suis en fait, donc au lieu que je fais ce hack dans mes JS:
$(document).ready(function() {
$('.line-chart').each(function() {
$.getJSON($(this).attr('data-src'),
function(data) {
$.plot($('.line-chart'), [data], { xaxis: { mode: "time" }});
});
});
$('.scatter-chart').each(function() {
$.getJSON($(this).attr('data-src'),
function(data) {
$.plot($('.scatter-chart'), [data], { xaxis: { mode: "time" },
lines: { show: false },
points: { show: true }
});
});
});
$('.scatter-chart2').each(function() {
$.getJSON($(this).attr('data-src'),
function(data) {
$.plot($('.scatter-chart2'), [data], { xaxis: { mode: "time" },
lines: { show: false },
points: { show: true }
});
});
});
});
Je suis sûr que je peux nettoyer ceci, je ne suis pas clair sur la façon de le faire. Le problème principal est que le $ .plot doit s'appliquer au graphique spécifique contre lequel le getJSON a été appelé, pas le premier qu'il trouve.
Bien, c'était aussi simple que je le craignais. C'est exactement ce que je cherchais. Merci! – teich