How to hide Bootstrap previous modal when you open

2019-03-22 19:02发布

问题:

I have such trouble: I have authentification which is made using Bootstrap modals.

When user opens sign in modal he can go to sign up modal ( or other ) . So, I need to close previous one.

Now I'm closing them like this:

$(document).ready(function(){
  $("a").click(function() {
  $("#login").hide();
  $("#sign_up").hide();
 })  
});

but when I'm doing this - I can't reopen sign in modal( after click on sign up from sign in) until I refresh the page.

Can someone suggest how to check on what modal I'm clicking on the link and close it, when call another one ? Is there any universal way to close previous modal ?

回答1:

You hide Bootstrap modals with:

$('#modal').modal('hide');

Saying $().hide() makes the matched element invisible, but as far as the modal-related code is concerned, it's still there. See the Methods section in the Modals documentation.



回答2:

Toggle both modals

$('#modalOne').modal('toggle');
$('#modalTwo').modal('toggle');


回答3:

The best that I've been able to do is

$(this).closest('.modal').modal('toggle');

This gets the modal holding the DOM object you triggered the event on (guessing you're clicking a button). Gets the closest parent '.modal' and toggles it. Obviously only works because it's inside the modal you clicked.

You can however do this:

$(".modal:visible").modal('toggle');

This gets the modal that is displaying (since you can only have one open at a time), and triggers the 'toggle' This would not work without ":visible"