Bootstrap Alert Auto Close


152

Ich muss die Warnung anrufen, wenn ich auf die Schaltfläche Zur Wunschliste hinzufügen klicke, und die Warnung sollte in 2 Sekunden verschwinden. So habe ich es versucht, aber die Warnung verschwindet sofort, sobald sie angezeigt wird. Nicht sicher, wo der Fehler ist. Kann mir jemand helfen?

JS-Skript

$(document).ready (function(){
   $("#success-alert").hide();
   $("#myWish").click(function showAlert() {
      $("#success-alert").alert();
      window.setTimeout(function () { 
         $("#success-alert").alert('close'); 
      }, 2000);             
   });      
});

HTML Quelltext:

<div class="product-options">
   <a id="myWish" href="" class="btn btn-mini">Add to Wishlist </a>
   <a href="#" class="btn btn-mini"> Purchase </a>
</div>

Warnbox:

<div class="alert alert-success" id="success-alert">
   <button type="button" class="close" data-dismiss="alert">x</button>
   <strong>Success!</strong>
   Product have added to your wishlist.
</div>


Ich habe diese Flows ausprobiert. Ich bin mir jedoch nicht sicher, wie ich sie implementieren soll. : /
srikanth_naalla

Antworten:


275

Für einen reibungslosen Ablauf:

$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
    $("#success-alert").slideUp(500);
});

$(document).ready(function() {
  $("#success-alert").hide();
  $("#myWish").click(function showAlert() {
    $("#success-alert").fadeTo(2000, 500).slideUp(500, function() {
      $("#success-alert").slideUp(500);
    });
  });
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<div class="product-options">
  <a id="myWish" href="javascript:;" class="btn btn-mini">Add to Wishlist </a>
  <a href="" class="btn btn-mini"> Purchase </a>
</div>
<div class="alert alert-success" id="success-alert">
  <button type="button" class="close" data-dismiss="alert">x</button>
  <strong>Success! </strong> Product have added to your wishlist.
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>


3
Es funktioniert nicht, wenn Sie zum zweiten Mal auf die Schaltfläche geklickt haben. Wegen Alarm ('schließen') Wenn Sie slideUp () verwenden, funktioniert es @ICanHasKittenz
Fatih Alp

Funktioniert schön, aber was ist das für eine Zeile $ ("# success-alert"). Alert (); Verwendung? Ich habe es entfernt und funktioniert auch.
Roberto Sepúlveda Bravo

1
@ RobertoSepúlvedaBravo Es ist wichtig, der Alert-Box die Close-Funktionalität zu geben, aber Sie haben Recht, es wird hier nicht benötigt, da wir das data-dimiss="alert" Attribut verwenden. Aktualisiert das Skript.
AyB

Hat bei mir nicht funktioniert. Die anderen Beispiele hier unten haben jedoch gut funktioniert.
Terje Nesthus

@TerjeNesthus Kannst du erklären, was genau nicht funktioniert hat? Der Alarm rutscht nicht hoch? Oder funktioniert es beim zweiten Mal nicht? Kann ich die Version Ihres Bootstraps kennen? Dies war für Bootstrap 3 gedacht und ich habe sie in späteren Versionen nicht getestet.
AyB

56

Die Verwendung eines fadeTo()Codes, der im Code von "I Can Has Kittenz" in 2 Sekunden auf eine Deckkraft von 500 verblasst, ist für mich nicht lesbar. Ich denke, es ist besser, andere Optionen wie eine Verzögerung zu verwenden ()

$(".alert").delay(4000).slideUp(200, function() {
    $(this).alert('close');
});

41

Warum all die anderen Antworten verwendet werden, slideUpist mir ein Rätsel. Da ich die Klassen fadeund inverwende, um die Warnung beim Schließen (oder nach einer Zeitüberschreitung) auszublenden, möchte ich nicht, dass sie "nach oben rutscht" und damit in Konflikt steht.

Außerdem hat die slideUpMethode nicht einmal funktioniert. Der Alarm selbst wurde überhaupt nicht angezeigt. Folgendes hat bei mir perfekt funktioniert:

$(document).ready(function() {
    // show the alert
    setTimeout(function() {
        $(".alert").alert('close');
    }, 2000);
});

1
Kurz und
bündig

21

Ich fand das eine bessere Lösung

$(".alert-dismissible").fadeTo(2000, 500).slideUp(500, function(){
    $(".alert-dismissible").alert('close');
});

11

Eine weitere Lösung hierfür: Schließen oder Ausblenden der Bootstrap-Warnmeldung nach 5 Sekunden automatisch:

Dies ist der HTML-Code, mit dem die Nachricht angezeigt wird:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<div class="alert alert-danger">
This is an example message...
</div>


<script type="text/javascript">

$(document).ready(function () {
 
window.setTimeout(function() {
    $(".alert").fadeTo(1000, 0).slideUp(1000, function(){
        $(this).remove(); 
    });
}, 5000);
 
});
</script>


Dies ist eine sehr schöne Antwort, da sie nicht nur die Nachricht tru JS anzeigt. Die Nachricht könnte bereits beim Laden der Seite angezeigt werden.
Guillermo Oramas R.

1
$("#success-alert").fadeTo(2000, 500).slideUp(500, function(){
    $("#success-alert").alert('close');
});

Wo fadeTo-Parameter fadeTo sind (Geschwindigkeit, Deckkraft)


1

Tigger bei Bedarf automatisch und manuell

$(function () {
    TriggerAlertClose();
});

function TriggerAlertClose() {
    window.setTimeout(function () {
        $(".alert").fadeTo(1000, 0).slideUp(1000, function () {
            $(this).remove();
        });
    }, 5000);
}

0

Dies ist ein guter Ansatz, um Animationen mit jQuery ein- und auszublenden

  $(document).ready(function() {
      // show the alert
      $(".alert").first().hide().slideDown(500).delay(4000).slideUp(500, function () {
         $(this).remove(); 
      });
  });

0

C # -Controller:

var result = await _roleManager.CreateAsync(identityRole);
   if (result.Succeeded == true)
       TempData["roleCreateAlert"] = "Added record successfully";

Rasiermesserseite:

@if (TempData["roleCreateAlert"] != null)
{
    <div class="alert alert-success">
        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
        <p>@TempData["roleCreateAlert"]</p>
    </div>
}

Beliebige automatische Schließung von Warnungen:

<script type="text/javascript">
    $(".alert").delay(5000).slideUp(200, function () {
        $(this).alert('close');
    });
</script>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.