Tworzę stronę startową z kilkoma „Modalami” Bootstrap. Próbuję dostosować niektóre domyślne funkcje.
Problem jest taki; Możesz zamknąć modal klikając na tło. Czy istnieje możliwość wyłączenia tej funkcji? Tylko w przypadku określonych modeli?
javascript
css
twitter-bootstrap
modal-dialog
jajogłowy
źródło
źródło
Odpowiedzi:
W rozdziale Opcje na połączonej stronie można zobaczyć tę
backdrop
opcję. Przekazanie tej opcji wartości'static'
spowoduje, że moduł nie zostanie zamknięty.Jak zauważył @PedroVagner w komentarzach, możesz również przejść,
{keyboard: false}
aby zapobiec zamknięciu modalu, naciskając Esc.Jeśli otwierasz modal przez js użyj:
Jeśli używasz atrybutów danych, użyj:
źródło
$('#modal').modal('show');
Nadzieją, że to pomaga!To jest najłatwiejsze
Możesz zdefiniować swoje zachowanie modalne, definiując klawiaturę danych i tło danych.
źródło
data-backdrop="static"
Dla mnie zadziałało umieszczenie opcji w definicji modalnej, a nie przycisku wyzwalającego otwierającego modal, jak podano w innych odpowiedziach.Możesz użyć takiego atrybutu:
data-backdrop="static"
lub z javascript:Zobacz także tę odpowiedź: Nie zezwalaj na zamykanie okna modalnego programu ładującego Twitter
źródło
W mojej aplikacji używam poniższego fragmentu kodu, aby pokazać modalność Bootstrap za pośrednictwem jQuery.
źródło
Możesz użyć
zmienić domyślne zachowanie.
źródło
Istnieją dwa sposoby wyłączenia kliknięcia poza obszarem modelu bootstrap, aby zamknąć modal-
za pomocą javascript
za pomocą atrybutu danych w znaczniku HTML
źródło
Sprawdź to ::
źródło
Inna opcja, jeśli nie wiesz, czy modal został już otwarty, czy jeszcze nie i musisz skonfigurować opcje modalne:
Zmień opcje na _config
źródło
_setEscapeEvent()
zamiast.escape()
?Rozwiązanie, które działa dla mnie, jest następujące:
tło: wyłączono zdarzenie „kliknij poza”
klawiatura: wyłączono zdarzenie słowa kluczowego scape
źródło
spróbuj tego, Podczas tworzenia aplikacji ... Spotkałem się również z problemem, że domyślne wartości atrybutu modelu =>
data-keyboard="true"
, =>data-backdrop="non static"
Mam nadzieję, że to ci pomoże!
źródło
Spróbuj tego:
źródło
żadne z tych rozwiązań nie działało dla mnie.
Mam modalny regulamin, który chciałem zmusić ludzi do sprawdzenia przed kontynuowaniem ... domyślne ustawienia „statyczne” i „klawiatura” zgodnie z opcjami uniemożliwiły przewijanie strony, ponieważ warunki to kilka stron log, statyczny nie był dla mnie odpowiedzią.
Zamiast tego poszedłem rozpiąć metodę click na module, dzięki czemu udało mi się uzyskać pożądany efekt.
$('.modal').off('click');
źródło
TLDR
backdrop: 'static'
https://getbootstrap.com/docs/3.3/javascript/#modals-options
źródło
źródło
Jeśli używasz @ ng-bootstrap, użyj następujących poleceń :
Składnik
Szablon
Ten kod został przetestowany na kancie 9 przy użyciu:
„@ ng-bootstrap / ng-bootstrap”: „^ 6.1.0”,
„bootstrap”: „^ 4.4.1”,
źródło
Użyj tego, jeśli chcesz wyłączyć kliknięcie zewnętrzne dla wszystkich modów korzystających z jQuery. Dodaj ten skrypt do JavaScript po jQuery.
źródło
Możesz to również zrobić bez użycia JQuery, na przykład:
źródło
Dodaj poniższy css, jak chcesz szerokość ekranu.
źródło