Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [js] onclick="azione1" onclick="azione2"

    salve a tutti

    cliccando su una determinata parola, rendo visibile un div; come posso fare in modo che cliccando una seconda volta sulla stessa parola il div diventi invisibile?

    ho creato le due funzioni (mostra e nascondi), ma se al primo click attivo la prima, nn so come far si che il secondo click attivi la seconda

    e' possibile? se si, come?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    puoi fare in tanti modi,
    c' è l' approccio "naturale" nel senso che usi una sola funzione x mostrare e nascondere basandoti sulla visibilità (o display che sia) dell' elemento in questione (e devi indicarla nello stile dell' elemento, meglio se in linea)

    x es.
    codice:
    <script>
    function mostra_nascondi(liv){
    document.getElementById(liv).style.visibility=(document.getElementById(liv).style.visibility=='visible')?'hidden':'visible'
    }
    </script>
    <div id="box" style="visible">box</div>
    mostra/nascondi box
    oppure con variabili globali che tengano traccia della visibilità al momento dell' elemento, chiaramente ne serve una x elemento (e se diventano tante è comodo usare un array)
    x es.
    codice:
    <script>
    var vis_box0=true
    function mostra_nascondi(liv){
    document.getElementById(liv).style.visibility=(window['vis_'+liv])?'hidden':'visible';
    window['vis_'+liv]=!window['vis_'+liv]
    }
    </script>
    <div id="box0">box</div>
    mostra/nascondi box
    (x me non è il massimo, ma) se vuoi mantenere 2 funzioni distinte puoi fartene una terza che in base alla visibilità dell' elemento o alla variabile globale richiami a sua volta mostra() o nascondi()
    es. basandosi sulla visibilità
    codice:
    <script>
    function mostra_nascondi(liv){
    if(document.getElementById(liv).style.visibility=='visible') nascondi(liv);
    else mostra(liv);
    }
    
    function mostra(liv){
    document.getElementById(liv).style.visibility='visible'
    }
    
    function nascondi(liv){
    document.getElementById(liv).style.visibility='hidden'
    }
    
    </script>
    <div id="box0" style="visibility:visible">box</div>
    mostra/nascondi box
    es. basandosi sulla var globale
    codice:
    <script>
    var vis_box0=true
    function mostra_nascondi(liv){
    if(window['vis_'+liv]) nascondi(liv);
    else mostra(liv);
    window['vis_'+liv]=!window['vis_'+liv]
    }
    
    function mostra(liv){
    document.getElementById(liv).style.visibility='visible'
    }
    
    function nascondi(liv){
    document.getElementById(liv).style.visibility='hidden'
    }
    
    </script>
    <div id="box0">box</div>
    mostra/nascondi box
    ciao

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    rileggendo il titolo penso di aver saltato qualche passaggio
    nel tuo caso non puoi richiamare le due funzioni una dietro l' altra perchè si annullerebbero, in pratica ad ogni click vedresti solo il risultato dell' azione2()
    la sintassi cmq sarebbe onclick="azione1();azione2()"

    se hai dubbi su quello che ho scritto sopra fammi sapere

  4. #4
    il primo esempio e' cio' che cercavo, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.