@piotrek1998: przepraszam, ale jeśli chodzi o mnie, to ja jednak wrócę do kodu sprzed Twoich ostatnich modyfikacji (acz już implementującego to, co napisałem ostatnio). Nie będę brać pod uwagę ani Twojego ostatniego kodu, ani propozycji @LukeJL oraz @szatkus Inaczej pogubię się. (Jeśli wolisz ich porady, mogę się wycofać, choćby tymczasowo).
Niech naszym kodem wyjściowym będzie teraz poniższy kod:
Kopiuj
let oldQuestionIndex = -1;
const btnSubmit = document.querySelector('.btn-submit');
const quizArr = [
{
question: 'What is the most used programming language in 2019?',
answers: [ 'Java', 'C', 'Python', 'JS' ]
},
{
question: 'Who is the President of US?',
answers: [ 'Florin Pop', 'Joe Biden', 'Ivan Saldano', 'Mihai Andrei' ]
},
{
question: 'What does HTML stand for?',
answers: [
'Hypertext Markup Language',
'Cascading Style Sheet',
'Jason Object Notation',
'Helicopters Terminals Motorboats Lamborginis'
]
},
{
question: 'What year was JavaScript launched?',
answers: [ '1996', '1995', '1994', 'none of the above' ]
}
];
function showRandomQuestion() {
getRandomVariants();
}
function getRandomVariants() {}
btnSubmit.addEventListener('click', function() {
showRandomQuestion();
});
showRandomQuestion();
Zmieniłem nazwę showRandomQuestions
na showRandomQuestion
w stosunku do Twojego ostatniego kodu (zauważ brak literki s
na końcu).
Teraz dobrze, żebyś był pewien, jak ten kod działa:
- Po załadowaniu strony dzieją się następujące rzeczy (mniej-więcej w tej kolejności):
1.1. Deklarowana jest zmienna oldQuestionIndex
i przypisywana jest jej liczba -1
.
1.2. Wywoływana jest metoda querySelector
obiektu document
, a tym samym pobierany jest przycisk (czyli element HTML) o klasie btn-submit
. Dalej: deklarowana jest zmienna btnSubmit
. Na końcu pobrany przycisk jest przypisywany tej zmiennej.
1.3. Deklarowana jest zmienna quizArr
i przypisywana jest jej tablica z pytaniami.
1.4. Deklarowana jest funkcja showRandomQuestion
.
1.5. Deklarowana jest funkcja getRandomVariants
.
1.6. Wywoływana jest metoda addEventListener
przycisku btnSubmit
.
1.7. Wywoływana jest funkcja showRandomQuestion
.
- Po wywołaniu metody
addEventListener
dzieją się następujące rzeczy:
2.1. Przypisywana jest funkcja anonimowa do zdarzenia click
przycisku btnSubmit
.
- Po kliknięciu przycisku
btnSubmit
(czyli nadejściu jego zdarzenia click
) dzieją się następujące rzeczy:
3.1. Wywoływana jest funkcja anonimowa przypisana do tego zdarzenia, a tym samym wywoływana jest funkcja showRandomQuestion
.
- Po wywołaniu funkcji
showRandomQuestion
dzieją się następujące rzeczy:
4.1. Wywoływana jest funkcja getRandomVariants
.
Powyższy opis działania jest tylko pomocniczy. Nie musisz z niego korzystać w dalszej pracy, choć dobrze, jak będziesz to działanie rozumieć.
Na razie tyle. Żeby nie wszystko naraz, napiszę ciąg dalszy jutro.
@LukeJL , @szatkus – przepraszam, że nie korzystam z Waszego kodu i propozycji.
szatkuselementupytania różnego od poprzedniego. Brakuje tylko deklaracjirandomIndex
.