Mam problem z automatycznym zamknięciem modów Bootstrap po określonym czasie.Jak automatycznie zamykać mod Bootstrap 3 po okresie czasu
Oto kod js Używam aby zamknąć modalne w 4 sekundy:
setTimeout(function() { $('#myModal').modal('hide'); }, 4000);
dwa podstawowe problemy:
(A) Gdy strona html (który zawiera czasowniki modalne) ładuje, modalny Timeout wydaje się działać, zanim modal zostanie wyświetlony. Modal jest ustawiony do wyświetlania po kliknięciu łącza na stronie. Jeśli po kliknięciu linku nie klikniesz natychmiast, modalny pojawi się krótko tylko na, a następnie natychmiast się zamknie, ponieważ w zasadzie okres limitu czasu został uruchomiony po załadowaniu strony HTML, a nie po wyświetleniu modalu.
(B) Jeśli użytkownik kliknie link, aby uruchomić modal po raz drugi (lub trzeci raz, 4 raz itd.), Modalnie wyświetla się prawidłowo, ale NIE zamyka się po upływie określonego czasu. Po prostu pozostaje otwarty, dopóki użytkownik nie zamknie go ręcznie.
... więc dwa pytania:
(1) Jak mogę dostać modalna limit czasu, aby czekać aż modalna jest wyświetlany przed uruchomieniem zegara.
(2) Jak sprawić, by modal wyświetlający drugi i trzeci raz z właściwą funkcją Timeout nadal działał?
(Odpowiedź (s) zaproponował na ten link poniżej wyglądał obiecująco, ale nie pracuje dla mnie. Może nie działać na Bootstrap 3? How to automatically close the bootstrap modal dialog after a minute)
Ten kod poniżej wyglądały bardzo obiecująco, ale nie działało nawet po zmianie "pokazanego" na "pokazany.bs.modal". A może umieszczam ten kod w niewłaściwym miejscu?
var myModal = $('#myModal').on('shown', function() {
clearTimeout(myModal.data('hideInteval'))
var id = setTimeout(function(){
myModal.modal('hide');
});
myModal.data('hideInteval', id);
})
Wielkie dzięki za wszelkie sugestie!
modalne wydarzenia Bootstrap 3 są teraz sufiksem więc należy użyć 'shown.bs.modal' zamiast' show', istnieje również komentarz, że w dniu odpowiedź, którą podłączyłeś –