Estaba teniendo un problema donde un gráfico de flot no se representaría en una interfaz con pestañas porque los divs de marcador de posición eran hijos de divs con 'display: none'. Los ejes se mostrarán, pero no el contenido gráfico.Flot gráfico no se representa cuando el contenedor primario está oculto
Escribí la función javascript a continuación como un contenedor para la función de trazado para resolver este problema. Puede ser útil para otros que hacen algo similar.
function safePlot(placeholderDiv, data, options){
// Move the graph place holder to the hidden loader
// div to render
var parentContainer = placeholderDiv.parent();
$('#graphLoaderDiv').append(placeholderDiv);
// Render the graph
$.plot(placeholderDiv, data, options);
// Move the graph back to it's original parent
// container
parentContainer.append(placeholderDiv);
}
Aquí es el CSS para el div cargador gráfico que se puede colocar en cualquier lugar en la página.
#graphLoaderDiv{
visibility: hidden;
position: absolute;
top: 0px;
left: 0px;
width: 500px;
height: 150px;
}
Divs con visibilidad: oculto realmente tiene dimensiones, es divs con pantalla: ninguno que no lo haga. – beauburrier
si es un elemento secundario de un elemento 'display: none' div, entonces no lo haría? – Ryley
Derecha, hijos de una pantalla: ninguna div no tendrá las dimensiones disponibles para que Flot la use para renderizar la gráfica, en IE con seguridad. Ese es el problema que se utiliza para resolver este div de carga invisible porque se coloca en un nivel superior fuera de cualquier divisor de contenedor. – beauburrier