Sluit bootstrap Modal

Ik heb een Dialoogvenster Bootstrap Modal die ik initieel wil laten zien, wanneer de gebruiker op de pagina klikt, verdwijnt deze. Ik heb het volgende:

$(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>

De modal wordt in eerste instantie weergegeven, maar het sluit niet wanneer deze buiten de modal is geklikt. Ook is het inhoudsgebied niet grijs. Hoe kan ik de modal in eerste instantie krijgen om in eerste instantie weer te geven en vervolgens te sluiten nadat de gebruiker buiten het gebied klikt? En hoe kan ik de achtergrond krijgen om grijs te worden zoals in de demo?


Antwoord 1, Autoriteit 100%

Zet modal('toggle')in plaats van modal(toggle)

$(function () {
   $('#modal').modal('toggle');
});

Antwoord 2, Autoriteit 59%

Om bootstrap te sluiten modaal U kunt ‘verbergen’ passeren als optie tot modale methode als volg

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

Neem een ​​kijkje op Working viemen hier

bootstrap biedt ook evenementen die u kunt aansluiten op modale-functionaliteit, bijvoorbeeld als u een evenement wilt starten wanneer de modale klaar om voor de gebruiker verborgen te zijn, kunt u het hidden.bs.modalevenement gebruiken. U kunt hier meer lezen over modale methoden en gebeurtenissen in Documentatie

Als geen van de bovenstaande methoden werkt, geef dan een id aan uw sluitknop en activeer de klik op de sluitknop.


Antwoord 3, autoriteit 12%

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

of

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

zou moeten werken.

Maar als niets anders werkt, kun je de modale sluitknop rechtstreeks aanroepen:

$("#modal .close").click()

Antwoord 4, autoriteit 5%

dit werkte voor mij:

<span class="button" data-dismiss="modal" aria-label="Close">cancel</span>

gebruik deze link modal close


Antwoord 5, autoriteit 3%

Probeer dit

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

Antwoord 6, autoriteit 3%

$("#your-modal-id").modal('hide');

Het uitvoeren van deze oproep via klasse ($(".my-modal"))werkt niet.


Antwoord 7, autoriteit 2%

deze is best goed en werkt ook in hoekige 2

$("#modal .close").click()

Antwoord 8

Mijn vijf cent op dit ene is dat ik niet wil moeten richten op de bootstrap modal met een id en aangezien er slechts één modale tegelijk de volgende zou meer dan voldoende om de modale schakelcodes te verwijderen moeten zijn kan gevaarlijk zijn:

$('.modal').removeClass('show');

Antwoord 9

In sommige omstandigheden typefout kan de boosdoener zijn. Bijvoorbeeld, zorg ervoor dat je:

data-dismiss="modal"

en geen

data-dissmiss="modal"

Let op de dubbele “ss” in het tweede voorbeeld dat op de knop Sluiten die niet zal veroorzaken.


Antwoord 10

We kunnen sluiten de modale pop-up op de volgende manieren:

// We use data-dismiss property of modal-up in html to close the modal-up,such as
<div class='modal-footer'><button type='button' class="btn btn-default" data-dismiss='modal'>Close</button></div>
 // We can close the modal pop-up through java script, such as
 <div class='modal fade pageModal'  id='openModal' tabindex='-1' data-keyboard='false' data-backdrop='static'>
    $('#openModal').modal('hide'); //Using modal pop-up Id.
    $('.pageModal').modal('hide'); //Using class that is defined in modal html.

Antwoord 11

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

Gebruik bovenstaande code naar de achtergrond van de modale verbergen als u meerdere modale pop in een pagina.


Antwoord 12

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
$(window).load(function(){
      $('#myModal').modal('show');
});
$(function () {
   $('#modal').modal('toggle');
});
</script>
</head>
<body>
<div class="container">
  <h2>Modal Example</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
  <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>

Antwoord 13

U kunt deze referentie maar als deze link is verwijderd, lees dit dan dit Beschrijving:

Bel een modal met ID Mymodal met een enkele regel JavaScript:

$('#myModal').modal(options)

opties

Opties kunnen worden doorgegeven via gegevenskenmerken of JavaScript. Voor gegevenskenmerken, voegt u de optieaam toe aan Gegevens – , zoals in Data-Backdrop = “” .

|----------- | ------------- | -------- | ---------------------------------------------|
| Name      | Type        | Default| Description                                 |
|----------- | ------------- | -------- | ---------------------------------------------|
| backdrop  | boolean or  | true   | Includes a modal-backdrop element.          |
|           | the string  |        | Alternatively, specify static for a         |
|           | 'static'    |        | backdrop which doesn't close the modal      |
|           |             |        | on click.                                   |
|           |             |        |                                             |
| keyboard  | boolean     | true   | Closes the modal when escape key is pressed.|   
|           |             |        |                                             |
| focus     | boolean     | true   | Puts the focus on the modal when initialized|       
|           |             |        |                                             |
| show      | boolean     | true   | Shows the modal when initialized.           |
|----------- | ------------- | -------- | ---------------------------------------------|

Methoden

Asynchrone methoden en overgangen

Alle API-methoden zijn asynchroon en starten een overgang. Ze keren terug
aan de beller zodra de overgang is gestart, maar voordat deze eindigt.
Bovendien zal een methodeaanroep op een transitiecomponent zijn:
genegeerd.

Zie onze JavaScript-documentatie voor meer informatie.

.modal(opties)

Activeert uw inhoud als modaal. Accepteert een optioneel optie-object.

$('#myModal').modal({
   keyboard: false
})

.modal(‘toggle’)

Handmatig schakelen tussen een modaal. Keert terug naar de beller voordat de modal daadwerkelijk is getoond of verborgen(d.w.z. voordat de gebeurtenis getoond.bs.modal of hidden.bs.modal plaatsvindt).

$('#myModal').modal('toggle')

.modal(‘show’)

Opent handmatig een modaal. Keert terug naar de beller voordat de modal daadwerkelijk is getoond(d.w.z. voordat de gebeurtenis getoond.bs.modal plaatsvindt).

$('#myModal').modal('show')

.modal(‘hide’)

Verbergt handmatig een modaal. Keert terug naar de beller voordat de modal daadwerkelijk is verborgen(d.w.z. voordat de hidden.bs.modal gebeurtenis plaatsvindt).

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

.modal(‘handleUpdate’)

Pas de positie van de modal handmatig aan als de hoogte van een modal verandert terwijl deze open is (d.w.z. als er een schuifbalk verschijnt).

$('#myModal').modal('handleUpdate')

.modal(‘dispose’)

Vernietigt de modal van een element.

Evenementen

Bootstrap’s modale klasse onthult een paar gebeurtenissen voor het aansluiten op modale functionaliteit. Alle modale gebeurtenissen worden afgevuurd op de modale zelf (d.w.z. op de **).
Typ Beschrijving

|---------------- | --------------------------------------------------------------|
| Event Type     | Description                                                  |
|---------------- | --------------------------------------------------------------|
| show.bs.modal  | This event fires immediately when the **show** instance      |
|                | method is called. If caused by a click, the clicked element  |
|                | is available as the **relatedTarget** property of the event. | 
|                |                                                              |
| shown.bs.modal | This event is fired when the modal has been made visible to  |
|                | the user (will wait for CSS transitions to complete). If     |
|                | caused by a click, the clicked element is available as the   | 
|                | **relatedTarget** property of the event.                     |
|                |                                                              |
| hide.bs.modal  | This event is fired immediately when the **hide** instance   |
|                | method has been called.                                      |
|                |                                                              |
| hidden.bs.modal| This event is fired when the modal has finished being hidden |
|                | from the user (will wait for CSS transitions to complete).   |
|---------------- | --------------------------------------------------------------|
$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

Antwoord 14

  function Delete(){
       var id = $("#dgetid").val();
       debugger
       $.ajax({
           type: "POST",
           url: "Add_NewProduct.aspx/DeleteData",
           data: "{id:'" + id + "'}",
           datatype: "json",
           contentType: "application/json; charset=utf-8",
           success: function (result) {
               if (result.d == 1) {
                   bindData();
                   setTimeout(function(){ $('#DeleteModal').modal('hide');},1000);
               }
           }
       });
   };

Antwoord 15

u kunt gebruiken;

$('#' + $('.modal.show').attr('id')).modal('hide');

Antwoord 16

Ik heb modal Programmatisch afgesloten met deze truc

Voeg een knop in modaal toe met data-dismiss="modal"en verberg de knop met display: none. Hier is hoe het eruit zal zien

<div class="modal fade" id="addNewPaymentMethod" role="dialog">
  <div class="modal-dialog">
   .
   .
   .
   <button type="button" id="close-modal" data-dismiss="modal" style="display: none">Close</button>
  </div>
</div>

Als u modal nu programmatisch wilt sluiten, activeer dan een klikgebeurtenisop die knop, die niet zichtbaar is voor de gebruiker

In Javascript kunt u als volgt op die knop klikken:

document.getElementById('close-modal').click();

Antwoord 17

Na wat testen ontdekte ik dat voor bootstrap modal enige tijd moest wachten voordat de $(.modal).modal('hide')werd uitgevoerd na het uitvoeren van $(.modal).modal('show'). En ik ontdekte dat ik in mijn geval een interval van minimaal 500 milliseconden nodig heb tussen de twee.
Dit is dus mijn testcase en oplossing:

$('.modal-loading').modal('show');
setTimeout(function() {
  $('.modal-loading').modal('hide');
}, 500);

Antwoord 18

Het gebruik van modal.hide zou alleen de modal verbergen. Als u overlay onder de modal gebruikt, zou deze er nog steeds zijn. gebruik click call om de modal te sluiten en de overlay te verwijderen.

$("#modalID .close").click()

Antwoord 19

Een andere manier om dit te doen is door eerst de klasse modal-open te verwijderen, waarmee de modal wordt gesloten. Vervolgens verwijder je de klasse modal-achtergrond die de grijsachtige omslag van de modal verwijdert.

De volgende code kan worden gebruikt:

$('body').removeClass('modal-open')
$('.modal-backdrop').remove()  

Antwoord 20

Deze code werkte perfect voor mij om een modal te sluiten (ik gebruik bootstrap 3.3)

$('#myModal').removeClass('in')

Antwoord 21

In mijn geval, hoofdpagina van waar Bootstrap Modal werd geactiveerd om niet te reageren na gebruik van $("#modal").modal('toggle');Way, maar begon te reageren in de Opvolgende manier:

$("#submitBtn").on("click",function(){
  $("#submitBtn").attr("data-dismiss","modal");
});

Antwoord 22

Dit werkt goed

$(function () {
   $('#modal').modal('toggle');
});

Wanneer u echter meerdere modals hebt die op de bovenkant stapt, is het niet effectief, dus in plaats daarvan werkt dit

data-dismiss="modal"

Antwoord 23

In mijn geval heb ik een knop gebruikt om de modal

te tonen

<button type="button" class="btn btn-success" style="color:white"
    data-toggle="modal" data-target="#my-modal-to-show" >
    <i class="fas fa-plus"></i> Call MODAL
</button>

Dus in mijn code, om de modal te sluiten (die de ID = ‘My-Modal-to-show’ heeft), noem ik die functie (in hoektypescript):

closeById(modalId: string) {
  $(modalId).modal('toggle');
  $(modalId+ ' .close').click();
}

Als ik $ (modalid) noem .modal (‘Hide’) het werkt niet en ik weet niet waarom

PS.: In mijn modal heeft ik dat knoopelement gecodeerd met. Sluit de klasse

<button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
    <span aria-hidden="true">&times;</span>
</button>

Antwoord 24

Voeg dit gewoon toe in modaal

div tabindex="-1"

Antwoord 25

Bovendien kunt u “klikken” op een ‘x’, waarmee het dialoogvenster wordt gesloten.
Bijv.:

$(".ui-dialog-titlebar-close").click();


Antwoord 26

soms werkt de oplossing niet, dus je moet de in class correct verwijderen en de css display:none handmatig toevoegen.

$("#modal").removeClass("in");
$("#modal").css("display","none");

Other episodes