Skocz do zawartości

Wywołanie funkcji w JavaScript po wciśnięciu dwóch kolejnych przycisków


Gosia

Recommended Posts

Zastanawiam, czy da się zaprogramować w JS takie zdarzenie że po wciśnięciu dwóch przycisków zostanie wywoła dowolna funkcja:

Przykład: Naciskam <button onclic="x()' > potem następny <button onclic="y()' > do których przypisane są jakieś funkcje. i w momencie gdy drugi przycisk będzie dopiero wciśniętych wywoła się funkcja która zmieni tło na przykład na zielony.

Zależy mi na tym żeby zostały wywołane funkcje przypisane do przycisków a dopieru po ich wykonaniu zostanie automatycznie wywołana trzecia funkcja.

Czy coś takiego jest możliwe bez cookies? ożywając tylko czystego JS? Macie jakieś pomysły?

Link do komentarza
Udostępnij na innych stronach

Można zrobić jakąś globalną zmienną, która trzyma informacje o tym, czy pierwszy przycisk był wciśnięty czy nie, a po wciśnięciu drugiego przycisku jest sprawdzana ta wartość i ewentualnie wykonuje się wtedy jakaś funkcja. Wyglądałoby to mniej więcej w ten sposób

var FirstPressed = false;
function First_OnClick() {
    FirstPressed = true;
    // Wykonanie akcji pierwszego przycisku //
}
function Second_OnClick() {
    // Wykonanie akcji drugiego przycisku //
    if (FirstPressed == true) {
        Thirdfunction();
    }
}

Można do tego jeszcze dodać możliwość anulowania sekwencji jeśli między pierwszym, a drugim przyciskiem zostanie naciśnięty jakiś inny. W takim przypadku w obsłudze innych przycisków wystarczy dodać:

FirstPressed = false;
Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...