![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem Posiadam funkcję/metode (prototypy) wywoływaną kilka razy
Problem polega na tym że javascript wykonuje obie funkcje jednocześnie co za tym idzie nadpisuje mi informacje takie jak czas, wiadomość oraz rodzaj alerta. Co zrobić by te funkcje wykonywały się jedna po drugiej. Tak by dopiero po zakończeniu pierwszej wykonywała się druga lub lepiej by poprzednia się przerywała ale by zachowały ustawienia oraz kolejności Mówiąc inaczej wszystkie trzy alerty wyświetlą się w ciągu czasu z ostatniej metody czyli 10 oraz z kolorem 'success' i wiadomością z ostatniego box-a. Czyli zamiast 20 sekund na wyświetlenie 3 alertów mam 10 sekund. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób przechowujesz te alerty? Pokaż źródło Alert. Proponuję zrobić tablicę w Alert np. alerts. Metoda box dodaje element do tablicy. Nastepnie timer co 1000ms i obsluga wyświetlania aktualnego alertu.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Hmm to i tak nic nie da gdyż jeżeli podczas wyświetlania jakiegoś alerta dodamy do tablicy kolejny i co sekundę sie wywoła to znów będzie taka sama sytuacja nałożą się te alerty na siebie. Co gorsza cześć z alertów może się nie wyświetlić w ogóle.
Ten post edytował KotWButach 8.08.2014, 13:15:52 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Możesz obsługiwać callback. Jako czwarty parametr podajesz funkcję, która ma być wykonana po zakończeniu jakiejś akcji.
W kodzie wywołujesz tą funkcję kiedy zakończy się "jakaś" akcja.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem wywalało mi błąd nie umiem jej zastosować jak by to się miało do mojego przykładu proszę pomóż. Poza tym nie da się zrobić listy gdyz te alerty będzie ich setki w całym kodzie.
Ten post edytował KotWButach 8.08.2014, 13:27:25 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Specjalnie dla Ciebie: http://jsfiddle.net/xLw852hL/
Update: http://jsfiddle.net/xLw852hL/1/ Tutaj masz przykład wiadomości która zostala dodana "po czasie": http://jsfiddle.net/xLw852hL/2/ Skrypt jest na tyle dynamiczny, że możesz dodawać "alerty" w każdym momencie. Ten post edytował markuz 8.08.2014, 13:36:44 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Co to jest za dziwna składnia? Ucze się i zaskoczeniem jest dla mnie coś takiego z tymi dwukropkami.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
To za długo się nie uczyłeś
![]() Ten post edytował markuz 8.08.2014, 13:50:44 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ale to jest rodzaj klasy? Jak prototype?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
To jest coś typu klasa statyczna w PHP z namespace. Zwykłe klasy w js tworzysz za pomocą function().
Tutaj możesz jej używać bez tworzenia instancji. Ten post edytował markuz 8.08.2014, 13:52:50 -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje Ci za odpowiedzi
![]() ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ale i tak pojawił mi się problem ponieważ funkcja jest wykonywana co sekundę więc tyle razy widzę animacje
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A skąd ja mogę wiedzieć jak ty to wywołujesz? Nie chcesz pokazać kodu a potem narzekasz ;d
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie chyba działa. Ten post edytował KotWButach 8.08.2014, 14:23:15 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 240 Pomógł: 278 Dołączył: 11.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Proponuję dodac do Dialog zmienną o nazwie last(int) i jeżeli last === i w metodzie display to wtedy nic sie nie dzieje (tylko sie odejmuje czas).
Zainspirowałeś mnie do napisania prostej biblioteki do obsługi wiadomości.
Dla każdego rodzaju (success, error itp.) tworzysz nową instancję Messages. Potem podmieniasz metodę publiczną display i możesz rozpocząć animację wejścia jeżeli message.isFirst(), rozpocząć animację wyjścia jeżeli message.isLast() itp. Ten post edytował markuz 8.08.2014, 14:38:07 -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 10 Dołączył: 8.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ojej dzięki
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 09:49 |