I encontré el mismo problema (el diálogo solo se abriría una vez, después del cierre, no se abriría nuevamente), y probé las soluciones anteriores que no solucionaron mi problema. Volví a los documentos y me di cuenta de que tenía un malentendido fundamental sobre cómo funciona el diálogo.
El comando $ ('# myDiv'). Dialog() crea/crea una instancia del cuadro de diálogo, pero no es necesariamente la forma correcta de abrir. La forma correcta de abrirlo es crear una instancia del cuadro de diálogo con el cuadro de diálogo(), luego usar el cuadro de diálogo ('abrir') para mostrarlo y el cuadro de diálogo ('cerrar') para cerrarlo/ocultarlo. Esto significa que probablemente quiera configurar la opción autoOpen en falso.
Así que el proceso es: crear una instancia del diálogo en el documento listo, luego escuchar el clic o cualquier acción que desee mostrar el cuadro de diálogo. ¡Entonces funcionará, una y otra vez!
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#myButton").click(showDialog);
//variable to reference window
$myWindow = jQuery('#myDiv');
//instantiate the dialog
$myWindow.dialog({ height: 350,
width: 400,
modal: true,
position: 'center',
autoOpen:false,
title:'Hello World',
overlay: { opacity: 0.5, background: 'black'}
});
}
);
//function to show dialog
var showDialog = function() {
//if the contents have been hidden with css, you need this
$myWindow.show();
//open the dialog
$myWindow.dialog("open");
}
//function to close dialog, probably called by a button in the dialog
var closeDialog = function() {
$myWindow.dialog("close");
}
</script>
</head>
<body>
<input id="myButton" name="myButton" value="Click Me" type="button" />
<div id="myDiv" style="display:none">
<p>I am a modal dialog</p>
</div>
Estoy de acuerdo 100% con usted. Creo que hay una forma diferente de mostrar TOC en la misma página. El problema es que todos los TOCs se muestran porque están en una declaración DIV. ¿Hay alguna manera de mostrar el DIV solo cuando alguien hace clic en el botón de enlace? –
Vea el segundo ejemplo que acabo de agregar. – carlsz
Lo probé (copié y pegué el código pero el "LOREM ..." no se muestra en el cuadro de diálogo y 2. Una vez que se hace clic en el enlace, aparece el diálogo, luego, cuando hago clic en el botón Cerrar y vuelvo a hacer clic en el enlace para ver los TOC otra vez, el cuadro de diálogo no aparece ... ¿Puede ayudarme por favor :(? –