El archivo que estoy cargando en el cuadro de diálogo modal puede variar en altura. Cuando se abre el primer enlace, la parte superior del cuadro de diálogo se centra horizontalmente (lo que significa que el cuadro de diálogo está demasiado bajo). Después de cerrar esto y volver a abrirlo, ya sea con el mismo botón de edición o uno diferente, la posición es mejor.jQuery UI Diálogo modal solo centrado en SEGUNDA carga (contenido del archivo externo)?
Parece que siempre está un paso atrás: la primera carga no puede determinar el ancho/alto del archivo que se está cargando, y en una carga posterior del mismo archivo, se posiciona perfectamente.
estoy usando el siguiente código como una edición modal para una tabla de datos:
$(".editMe").button({
icons: {
primary: 'ui-icon-document'
},
text: false
}).click(function() {
var eventLink = $(this).attr("name");
var dialogOpts = {
title: "Make Modifications or Delete This Event",
modal: true,
autoOpen: false,
height: "auto",
width: "auto",
open: function() {
//The height of the file below can vary, and in the
//JS Bin environment the dialog loads just fine blank
$("#modify").load("themes_edit.asp?id=" + eventLink);
},
close: function() {
oTable.fnDraw();
}
};
$("#modify").dialog(dialogOpts).dialog("open");
return false;
});
Y aquí hay algo de HTML muestra (aunque el archivo cargado en #modify no está online). También configuré esto en JS Bin.
<html>
<head>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
</head>
<body>
<button class="editMe" name="2810">edit</button>
<button class="editMe" name="2811">edit</button>
<button class="editMe" name="2812">edit</button>
<button class="editMe" name="2813">edit</button>
<div id="modify"></div>
</body>
</html>
Esto haría sin embargo, agregue un retraso de medio segundo innecesario a cada diálogo, no lo recomendaría para la mayoría de las aplicaciones, siempre visualice los datos lo antes posible, haga que la experiencia sea lo más rápida posible. –
@NickCraver El usuario no se daría cuenta, ya que actúa mucho más suave que el aspecto de bofetada rápida, especialmente porque la apertura del diálogo ui no es compatible con la animación abrir/cerrar x-browser + la operación menciona su disgusto por el parpadeo de las cosas;) – redsquare
el diálogo en sí mismo sería eso, recuerde que su solución aún adquirirá un nuevo tamaño y luego se desvanecerá (un retraso * después de * que se cargue, esa es la parte innecesaria, esta debería ser una duración mucho más corta si se usa), para mí esta combinación es más discordante que simplemente mostrar el contenido en el tamaño/posición correcta originalmente. - Para su edición: encuentro que los efectos funcionan bien en el navegador cruzado, por ejemplo, prefiero soltar para ocultar el diálogo. ¿Tienes otros problemas? –