• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sweetalert nie wyświetla komunikatu

0 głosów
686 wizyt
pytanie zadane 18 kwietnia 2024 w JavaScript przez Skulak Nowicjusz (240 p.)
edycja 18 kwietnia 2024 przez Skulak
Cześć,

wróciłem do tego kodu po jakimś czasie. Zapamiętałem, że działał, ale może czegoś nie zapisałem. Wydaje mi się, że wszystko jest ok, ale może widzicie więcej. Nie wyświetla się komunikat o wygranej i remisie w grze w kółko i krzyżyk, mimo, że trzy pola otrzymują taką samą klasę.. Od razu zaznaczam. Załączyłem skrypt SweetAlerta ;)
 

https://codepen.io/Skulak13/pen/XWQxyjy
komentarz 18 kwietnia 2024 przez Comandeer Guru (607,960 p.)
Są jakieś błędy w konsoli?

Fajnie byłoby zobaczyć całość online.
komentarz 18 kwietnia 2024 przez Skulak Nowicjusz (240 p.)
Wrzuciłem do codepena :

https://codepen.io/Skulak13/pen/XWQxyjy
komentarz 18 kwietnia 2024 przez Skulak Nowicjusz (240 p.)
A konsola wyświetla tylko script error.
komentarz 18 kwietnia 2024 przez VBService Ekspert (256,580 p.)
edycja 18 kwietnia 2024 przez VBService

BTW,

  • może zamiast <table> spróbuj użyć grid 3x3
  • IMO sprawdzanie czy wygrana, czy przegrana, lepiej zacząć sprawdzać po piątym ruch (kliknięciu) wcześniej nie ma sensu
  • IMO zamiast setTimeout() sprawdzaj po kliknięciu w pole z uwzględnieniem punktu powyżej, do wykrywania kliknięć na "siatce" użyj np.: Event Delegation

1 odpowiedź

0 głosów
odpowiedź 18 kwietnia 2024 przez Comandeer Guru (607,960 p.)
wybrane 21 kwietnia 2024 przez Skulak
 
Najlepsza

sweetalert2@11:5 Uncaught TypeError: Cannot call a class as a function

Taki błąd widać w konsoli. Próbujesz wywoływać alert jako funkcję, ale to jest tak naprawdę klasa. Najwyraźniej zmieniło się API i teraz trzeba używać swal.fire() zamiast swal().

Zmieniła się też konfiguracja, bo po naprawieniu niewyświetlania się cały czas pokazuje się inny błąd:

iframeConsoleRunner-6d8bf8b4b479137260842506acbb12717dace0823c023e08b96360e60b0840d9.js:1 SweetAlert2: Unexpected type of html! Expected "string" or "Element", got object

Ogólnie musiałbyś pozmieniać te wywołania, np

swal('It\'s a draw!', {
    buttons: {
        confirm: {
            text: "OK",
            value: true,
            visible: true,
            className: "swal-button",
        },
    },
}).then((value) => {
    if (value) {
        resetGame();
    }
});

na:

swal.fire( {
    text: 'It\'s a draw!',
    customClass: {
        confirmButton: 'swal-button',
    }
}).then((value) => {
    if (value) {
        resetGame();
    }
});

Więcej info masz w docsach.

komentarz 21 kwietnia 2024 przez Skulak Nowicjusz (240 p.)

Dzięki za pomocsmiley

Podobne pytania

0 głosów
1 odpowiedź 440 wizyt
pytanie zadane 30 lipca 2019 w C# przez Bezy Bywalec (2,280 p.)
–1 głos
1 odpowiedź 306 wizyt
pytanie zadane 15 marca 2016 w JavaScript przez McShadow Obywatel (1,050 p.)
0 głosów
1 odpowiedź 902 wizyt

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...