sto lottando per chiudere automaticamente bootstrap modali, dopo un periodo di tempo stabilito.Come chiudere automaticamente Bootstrap 3 modale dopo il periodo di tempo
Ecco il codice js che sto usando per chiudere il modal in 4 secondi: problemi
setTimeout(function() { $('#myModal').modal('hide'); }, 4000);
Due fondamentali:
(A) Quando la pagina html (che contiene le modali) carichi, il Timeout modale sembra essere eseguito prima che il modale venga visualizzato. Il modale è impostato per la visualizzazione dopo aver fatto clic su un collegamento nella pagina. Se il link non è scattato immediatamente al caricamento della pagina, verrà visualizzato il modal solo brevemente e quindi chiudere immediatamente perché essenzialmente il periodo di timeout è iniziato quando la pagina HTML caricata, non quando è stato visualizzato il modale.
(B) Se l'utente fa clic sul collegamento per avviare il modal una seconda volta (o 3 ° tempo, 4 ° tempo, etc.), i display modali correttamente, ma non si chiude dopo il periodo di tempo. Rimane appena aperto finché l'utente chiude manualmente.
Quindi ... le due domande sono:
(1) Come faccio ad avere il periodo di Timeout modale di attendere fino a visualizzare il modal prima di eseguire l'orologio.
(2) Come si ottiene la modale per visualizzare una seconda e una terza volta con la funzione Timeout corretta ancora funzionante?
(La risposta (s) proposto a questo link in basso sembrava promettente, ma non stanno lavorando per me. Forse non funzionano su Bootstrap 3? How to automatically close the bootstrap modal dialog after a minute)
Questo codice qui sotto sembrava molto promettente, ma non ha funzionato nemmeno dopo aver cambiato 'mostrato' a 'shown.bs.modal'. O forse sto mettendo questo codice nel posto sbagliato?
var myModal = $('#myModal').on('shown', function() {
clearTimeout(myModal.data('hideInteval'))
var id = setTimeout(function(){
myModal.modal('hide');
});
myModal.data('hideInteval', id);
})
Molte grazie per qualsiasi suggerimento!
Gli eventi modali in Bootstrap 3 sono ora il suffisso così si dovrebbe usare 'shown.bs.modal' invece di' show', c'è anche un commento su quella su la risposta che hai collegato –