Pouvons-nous dessiner un graphique Google dans une boîte à lettres pop-up?
J’ai des données affichées dans un tableau, et il y a un bouton dans chaque ligne pour montrer le graphique Google de chaque enregistrement.
Actuellement, mon graphique est toujours affiché en bas après le tableau, mais lorsque vous faites défiler l’enregistrement au-dessus de l’écran, vous devez faire défiler l’écran jusqu’en bas pour obtenir l’affichage graphique. Est-il possible d’utiliser Fancybox ou d’une manière quelconque pour résoudre cet inconvénient?
Merci pour tout conseil!
html:
data ...
js:
function drawPieChart(dataArr, elementId) { //dataArr : the data to display //elementId : element where to display chart var data = google.visualization.arrayToDataTable(dataArr); var chart = new google.visualization.PieChart(document.getElementById(elementId)); chart.draw(data, options); } function showChart(){ //alert("readyState=" + xhr2.readyState); if(xhr2.readyState == 4) { if(xhr2.status == 200){ var allEmp = xhr2.responseText; var empList = JSON.parse(allEmp); ... prepare pieChartDate[] to draw chart ... //create to displaying chart in it $('.secondary').html(''); drawPieChart(pieChartData[0], "chart_div"); ... } function showChartByEmpId(){ var url = '/CMP/employee/emp.do'; //create XMLHttpRequest xhr = createXHR(); if( xhr == null ){ alert("no xhr creted"); return; } var requestData = "action=getOneEmpJSON&empId1=" + escape(empId1) + "&empId2=" + escape(empId2); xhr.open('POST', url, true); xhr.onreadystatechange = showChart; xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(requestData); }
- Marqueurs / Cercles dans Spline chart dans les graphiques supérieurs
- filtre de chaîne et données de filtre de contrôle plus d’un graphique Google
- FLOT: Commandez l’axe des y par date minimale
- Chart.js Valeur par défaut en l’absence de données de graphique
- Format Highcharts xAxis pour les données boursières
Ce que je ferais:
1). cacher la div .secondary
2) atsortingbuer un sélecteur de classe à chaque bouton comme
3) lie un événement de click
à each
bouton, puis affiche le contenu de #chart_div
dans fancybox après sa création.
jQuery(function ($) { $(".doPiechart").each(function (i) { $(this).on("click", function () { showChartByEmpId(i); $.fancybox("#chart_div"); }); // on click }); // each });
Notez que vous devrez peut-être modifier votre fonction showChartByEmpId()
pour transmettre l’index de la méthode .each()
et éventuellement inclure un rappel pour afficher fancybox une fois l’opération terminée.
Voir un comportement simulé dans JSFIDDLE avec fancybox v2.x
REMARQUE : .on()
requirejs jQuery v1.7 +
- l’étiquette de données n’est pas affichée
- Déclenchement du changement lors de la sélection d’un jeu de données
- Surligneur jqplot pour différents graphiques linéaires
- Utilisation de Chartist.js, comment modifier la couleur du trait pour un graphique en anneau?
- Highcharts GANTT Chart Tooltip Problème lié au suivi de la souris
- Highcharts. Camembert. Formateur DataLabels
- Camembert en anneau semi-circulaire avec étiquettes (noms de données) et% -ages sur le camembert… et numéros de données sur le déplacement
- inclure des graphiques jquery en pdf
- Chart.js – Plusieurs graphiques de beignets sur la même canvas
- Quel outil graphique javascript ou JQuery puis-je utiliser pour créer des graphiques heatmap avec des étiquettes de colonnes verticales?