[Javascript] Sequenza alternata condizionata dal click

sunlightbanana

Utente Attivo
26 Ott 2011
96
0
6
Salve a tutti,
vorrei inseire nella pagina HTML dei caratteri alternati secondo questa sequenza:

appare A in automatico
appare B tramite click
appare A in automatico
appare B tramite click

etc..

in tutto devono apparire alternati 9 caratteri. Inoltre una volta che appare B tramite click, questo deve disabilitarsi fino a quando non compare l' A successivo.

Ho provato così:
Codice:
<p id="a">start: </p>
<script type="text/javascript">
    var x = document.getElementById('a');
    var bln = true;
    function a1() {
        x.innerHTML += ' a1';
    }
    function a2() {
        x.innerHTML += ' a2';
        setTimeout(function() { a1() }, 1000);
    }

    setInterval(function() {
        switch (bln) {
            case true:
                a1();
                bln = false;
                break;
            default :
                x.addEventListener("click", a2);
        }
    }, 1000);
</script>
Ma il click non si disabilita e quindi anche prima che compaiano le A successive, posso premere e far apparire le B tutte insieme.

Grazie a tutti per l'aiuto!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, puoi rimuovere l'evento con removeEventListener(), prova anche cosi:
Codice:
var x = document.getElementById('a');
    var bln = true;
    function a1() {
        if (bln) {
            x.innerHTML += ' a1';
            x.addEventListener("click", a2);
        }
        bln = false;
    }
    function a2() {
        x.removeEventListener('click', a2, false);
        x.innerHTML += ' a2';
        setTimeout(function () {
            bln = true;
            a1();
        }, 1000);
    }

    setInterval("a1()", 1000);
 
  • Like
Reactions: sunlightbanana