Tengo un cuadro de diálogo modal de bootstrap que quiero mostrar inicialmente, luego, cuando el usuario hace clic en la página, desaparece. Tengo lo siguiente:
$(function () {
$('#modal').modal(toggle)
});
<div class="modal" id='modal'>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Error:</h3>
</div>
<div class="modal-body">
<p>Please correct the following errors:</p>
</div>
</div>
</div>
El modal se muestra inicialmente, pero no se cierra cuando se hace clic fuera del modal. Además, el área de contenido no está atenuada. ¿Cómo puedo hacer que el modal se muestre inicialmente y luego cerrar después de que el usuario haga clic fuera del área? ¿Y cómo puedo hacer que el fondo se atenúe como en la demostración?
$("#yourModal").modal()
o$('.modal').modal()
?Respuestas:
Poner en
modal('toggle')
lugar demodal(toggle)
fuente
a cerca de arranque modal puede pasar 'ocultar' como opción de método modal de la siguiente
Por favor, eche un vistazo al violín de trabajo aquí
bootstrap también proporciona eventos que puede conectar a la funcionalidad modal , como si desea activar un evento cuando el modal ha terminado de ocultarse para el usuario, puede usar el evento hidden.bs.modal , puede leer más sobre métodos modales y eventos aquí en Documentación
Si ninguno de los métodos anteriores funciona, asigne una identificación a su botón de cerrar y haga clic en el botón de cerrar.
fuente
toggle
mantiene la superposición y no es una solución. Siempre debe usar cualquierashow
ohide
.o
Deberia trabajar.
Pero si nada más funciona, puede llamar al botón de cierre modal directamente:
fuente
$('#modal').modal('hide')
pero puedo cerrarlo usando$('#modal').modal('toggle')
pero que muestra una barra de desplazamiento vertical después del cierre. Entonces, para mí$('#modal').hide()
funcionó perfectamente, pero quiero saber si eso crearía algún problema. Y estoy codificando dentro,$('#modal .close').click()
así que no creo que pueda usarlo para cerrar modal.esto funcionó para mí:
usa este enlace modal cerrar
fuente
Ejecutar esta llamada a través de la clase
($(".my-modal"))
no funcionará.fuente
Prueba esto
fuente
este es bastante bueno y también funciona en angular 2
fuente
$('#modal').modal('toggle');
que no tiene ningún efecto.Mis cinco centavos en este caso es que no quiero tener que apuntar al modal de arranque con una identificación y, dado que solo debería haber un modal a la vez, lo siguiente debería ser suficiente para eliminar el modal, ya que la alternancia podría ser peligrosa :
fuente
<body>
, se les agregan clases que también tendrían que revertirse. La mejor respuesta es usar el'hide'
método.En algunas circunstancias, el error de escritura podría ser el culpable. Por ejemplo, asegúrese de tener:
y no
Observe la doble "ss" en el segundo ejemplo que hará que falle el botón Cerrar.
fuente
Podemos cerrar la ventana emergente modal de las siguientes maneras:
fuente
$('.modal.in').modal('hide');
use el código anterior para ocultar el fondo de modal si está utilizando pop múltiple modal en una página.
fuente
$('.modal').modal('hide');
lo hará.fuente
fuente
$('#DeleteModal').modal('hide');
es relevante aquí?puedes usar;
fuente
Usar modal.hide solo ocultaría el modal. Si está utilizando superposición debajo del modal, todavía estaría allí. use la llamada de clic para cerrar el modal y eliminar la superposición.
fuente
Otra forma de hacerlo es que primero elimine la clase modal-open, que cierra el modal. Luego elimina la clase modal-backdrop que elimina la cubierta grisácea del modal.
Se puede usar el siguiente código:
fuente
Agregue un botón en modal con
data-dismiss="modal"
y oculte el botón condisplay: none
. Así es como se veráAhora, cuando desee cerrar modal mediante programación, simplemente active un evento de clic en ese botón, que no es visible para el usuario
En Javascript puede activar el clic en ese botón de esta manera:
fuente
Este código funcionó perfectamente para mí para cerrar un modal (estoy usando bootstrap 3.3)
fuente
En mi caso, la página principal desde donde se activó el modo de arranque comenzó a no responder después de usar la
$("#modal").modal('toggle');
forma, pero comenzó a responder de la siguiente manera:fuente
Esto funciona bien
Sin embargo, cuando tiene múltiples modales apilados uno encima del otro, no es efectivo, por lo que esto funciona
fuente
Después de algunas pruebas, descubrí que para el modo de arranque debe esperar un tiempo antes de ejecutar
$(.modal).modal('hide')
después de la ejecución$(.modal).modal('show')
. Y descubrí que en mi caso necesito al menos un intervalo de 500 milisegundos entre los dos.Así que este es mi caso de prueba y solución:
fuente
Puede ver esta referencia, pero si se ha eliminado este enlace, lea esta descripción:
Llame a un modal con id myModal con una sola línea de JavaScript:
Opciones
Las opciones se pueden pasar a través de atributos de datos o JavaScript. Para los atributos de datos, agregue el nombre de la opción a data- , como en data-backdrop = "" .
Métodos
.modal (opciones)
Activa tu contenido como modal. Acepta un objeto de opciones opcionales.
.modal ('alternar')
Alterna manualmente un modal. Regresa a la persona que llama antes de que el modal se haya mostrado u ocultado realmente (es decir, antes de que ocurra el evento shown.bs.modal u hidden.bs.modal).
.modal ('show')
Abre manualmente un modal. Regresa a la persona que llama antes de que se muestre el modal (es decir, antes de que ocurra el evento mostrado.bs.modal).
.modal ('ocultar')
Oculta manualmente un modal. Regresa a la persona que llama antes de que el modal se haya ocultado realmente (es decir, antes de que ocurra el evento hidden.bs.modal).
.modal ('handleUpdate')
Reajuste manualmente la posición del modal si la altura de un modal cambia mientras está abierto (es decir, en caso de que aparezca una barra de desplazamiento).
.modal ('disponer')
Destruye el modal de un elemento.
Eventos
La clase modal de Bootstrap expone algunos eventos para engancharse a la funcionalidad modal. Todos los eventos modales se disparan en el modal mismo (es decir, en el **). Descripción del tipo
fuente
Además, puede "hacer clic" en una 'x', que cierra el cuadro de diálogo. P.ej:
$(".ui-dialog-titlebar-close").click();
fuente
En mi caso, usé un botón para mostrar el modal
Entonces, en mi código, para cerrar el modal (que tiene el id = 'my-modal-to-show') llamo a esa función (en mecanografiado angular):
Si llamo $ (modalId) .modal ('hide') no funciona y no sé por qué
PD .: en mi modal también codifiqué ese elemento de botón con la clase .close
fuente
algunas veces la solución no funciona, por lo que debería eliminar correctamente la clase y agregar la pantalla css: ninguna de forma manual.
fuente