Ich schrieb ein einfaches JQuery-Skript, um automatisch alle Warnungen auf meiner Webseite in verschiedenen Zeiträumen zu schließen.bootstrap alert auto closing funktioniert nicht
Das ist mein JQuery-Code:
$(function() {
var alert = $('div.alert[auto-close]');
alert.each(function() {
var time_period = $(this).attr('auto-close');
setTimeout(function() {
$(this).alert('close');
}, time_period);
});
});
Hier sind meine zwei Probe-Benachrichtigungen:
<div class="alert alert-danger alert-dismissible" role="alert" auto-close="3000">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
alert one
</div>
<div class="alert alert-success alert-dismissible" role="alert" auto-close="5000">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
alert two
</div>
Jeder Alarm hat ein eigenes Attribut mit dem Wert, der als Alarm Schließzeitperiode verwendet wird.
Aus irgendeinem Grund funktioniert das Schließen der Warnung nicht.
try: 'var this_alert = $ (this);' unter time_period var. Dann in setTimeout anstelle von '$ (this) .alert ('close');' do: 'this_alert.alert ('close')' – dMd
'$ (this)' ist innerhalb des Callback-Bereichs 'setTimeOut' anders. zwischenzuspeichern. überprüfe meine Antwort unten. – Iceman
Ya, jetzt habe ich verstanden, was den Fehler verursacht. – Great9