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

    con un onClick, alternare più classi

    Bonsai a todos!
    Stavo lavorando su delle pagine e volevo un menù utilizzando come pulsanti gli stessi td di una tabella, con tanto di rollover e di evidenziazione dell'ultimo "pulsante" premuto; per cui ho operato una cosa simile a questa:

    -----------------------------------------------------

    <style type="text/css">
    <!--
    .ON {
    background-color: #FF9900;
    }
    .OFF {
    background-color: #999999;
    }
    .Premuto {
    background-color: #FFFF00;
    }
    -->
    </style>
    <body bgcolor="#CCCCCC">
    <table width="600" align="center">
    <tr>
    <td width="200" class="OFF" id="cellauno"
    onClick="this.className='Premuto', celladue.className='OFF', cellatre.className='OFF'"
    onMouseOver="if(this.className!='Premuto'){this.cl assName='ON'}"
    onMouseOut="if(this.className!='Premuto'){this.cla ssName='OFF'}"></td>

    <td width="200" class="OFF" id="celladue"
    onClick="this.className='Premuto', cellauno.className='OFF', cellatre.className='OFF'"
    onMouseOver="if(this.className!='Premuto'){this.cl assName='ON'}"
    onMouseOut="if(this.className!='Premuto'){this.cla ssName='OFF'}"></td>

    <td width="200" class="OFF" id="cellatre"
    onClick="this.className='Premuto', cellauno.className='OFF', celladue.className='OFF'"
    onMouseOver="if(this.className!='Premuto'){this.cl assName='ON'}"
    onMouseOut="if(this.className!='Premuto'){this.cla ssName='OFF'}"></td>
    </tr>
    </table>

    -----------------------------------------------------

    E per funzionare funziona, ma non è molto... comodo, in senso che se voglio aggiungere nuove celle, devo in ognuna di queste, aggiungere ogni volta la stringa che dice di evidenziare se stessa ma de-evidenziare le altre, menzionandole una per una, e modificando poi anche le stringhe delle altre celle per dire "oh, c'è anche questa da de-evidenziare adesso!"

    Per cui mi chiedevo se c'era un modo per, sì evidenziare la cella che mi serve col solito this, ma anche di poter de-evidenziare tutte le altre in un colpo solo, tipo:

    onClick="this.className='Premuto', tuttelealtredannatecelle.className='OFF'"


    Si può far qualcosa? Denchiù!
    Tagliare rami del bonsai per farlo rimanere nano è contronatura come obbligarmi a diventare più alto.
    L'unica soluzione in questo caso è... FAKE BONSAI!
    Non coltivare bonsai.
    Comprali finti.

  2. #2
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    381
    <html>
    <head>
    <style type="text/css">
    <!--
    .ON {
    background-color: #FF9900;
    }
    .OFF {
    background-color: #999999;
    }
    .Premuto {
    background-color: #FFFF00;
    }
    -->
    </style>
    <script>
    function bottoni(a,e) {
    tot=document.getElementsByTagName("TD").length
    for(i=0; i < tot; i++) {
    cella = document.getElementsByTagName("TD").item(i)
    nome=cella.getAttribute("id")
    if (e=="Click"){
    if (nome==a) document.getElementById(nome).className='premuto'
    else document.getElementById(nome).className='OFF'
    }
    if (e=="Over"){
    if (document.getElementById(nome).className!='premuto ') if (nome==a) document.getElementById(nome).className='ON'
    }
    if (e=="Out"){
    if (document.getElementById(nome).className!='premuto ') if (nome==a) document.getElementById(nome).className='OFF'
    }
    }
    }
    </SCRIPT>
    </head>

    <body bgcolor="#CCCCCC">
    <table width="600" align="center">
    <tr>
    <td width="200" height=20 class="OFF" id="cella1"
    onClick="javascript:bottoni('cella1','Click')"
    onMouseOver="javascript:bottoni('cella1','Over')"
    onMouseOut="javascript:bottoni('cella1','Out')" >
    </td>

    <td width="200" height=20 class="OFF" id="cella2"
    onClick="javascript:bottoni('cella2','Click')"
    onMouseOver="javascript:bottoni('cella2','Over')"
    onMouseOut="javascript:bottoni('cella2','Out')" >
    </td>

    <td width="200" height=20 class="OFF" id="cella3"
    onClick="javascript:bottoni('cella3','Click')"
    onMouseOver="javascript:bottoni('cella3','Over')"
    onMouseOut="javascript:bottoni('cella3','Out')" >
    </td>
    </tr>
    </table>
    </body>
    </html>


  3. #3
    Grazie mille, funziona benissimo!! E scusa il ritardo!
    Adesso volevo solo capire bene la struttura stessa dello script, che sono un po' ignorantello! Mi metto a studiare! ^_^
    Tagliare rami del bonsai per farlo rimanere nano è contronatura come obbligarmi a diventare più alto.
    L'unica soluzione in questo caso è... FAKE BONSAI!
    Non coltivare bonsai.
    Comprali finti.

  4. #4
    Utente bannato
    Registrato dal
    Dec 2003
    Messaggi
    381

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 © 2025 vBulletin Solutions, Inc. All rights reserved.