Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    17

    Problema onClick su tabella

    ciao a tutti,
    vi posto le parti di codice su cui m sn bloccato :master:

    Allora ho una tabella all'interno di un div per un menu:
    <div id="menu">
    <table><tbody>
    <tr>
    <th scope="col">
    <div id="home" class="menu_th" onclick="sottomenu(this.id);">home</div>
    </th>
    <th scope="col">
    <div id="chi_siamo" class="menu_th" onclick="sottomenu(this.id);">chi siamo</div>
    </th>
    <th scope="col">
    <div id="architetto" class="menu_th" onclick="sottomenu(this.id);">architett0</div>
    </th>
    </tbody>
    </table>
    </div>

    La funzione in javascript è:

    function sottomenu(quale){
    document.getElementById(quale).style.className = "menu_th_sel";
    }

    Ora lasciando perdere i vari css (che in pratica invertono i colori di sfondo e testo), il codice non funziona e non da errori.
    Colgo l'occasione anche per chiedere come potrei fare per far si che man mano che clicco i vari link gli altri tornino allo stato originale eccetto quello clicato ovviamente.

    Vi ringrazio..

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    17

    ..prima parte ho fatto.. ;)

    function sottomenu(quale){
    document.getElementById(quale).className = "menu_th_sel";
    }

    C'era un .style di troppo

    ora vorrei sapere come posso fare per la seconda parte..grazie!

  3. #3
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    document.getElementById(quale).className = "menu_th_sel";
    o nel tuo caso
    this.className =..

    Per far solo quello cliccato.

    Codice PHP:

    var div =null;
    function 
    sottomenu(){
            if (
    div!=null)
                
    div.className='Menu_th';
            
    div=this;
            
    this.className='"menu_th_sel"';    


  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    17

    grazie

    per la prima parte mi ero accorto da solo dell'errore :P

    nella seconda parte il vero problema e far tornare normali gli altri link già cliccati..

  5. #5
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    Lo script che to postato non va?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    17

    ci sono più div..

    all'interno del mio codice ci sn molti div capisci..

    ho trovato una soluzione poco elegante, ma FUNZIONA..

    function sottomenu(quale){
    document.getElementById("home").className = "menu_th";
    document.getElementById("chi_siamo").className = "menu_th";
    document.getElementById("architettura").className = "menu_th";
    document.getElementById("risparmio_energetico").cl assName = "menu_th";
    document.getElementById("certificazioni").classNam e = "menu_th";
    document.getElementById("contatti").className = "menu_th";
    //SELEZIONATO
    document.getElementById(quale).className = "menu_th_sel";
    }

  7. #7
    Utente di HTML.it L'avatar di lake86
    Registrato dal
    Dec 2006
    Messaggi
    705
    Fai come vuoi ma anche la mia associata all'evento con click da lo stesso risultato.
    Codice PHP:
    var div =null;
    function 
    sottomenu(){
            if (
    div!=null)
                
    div.className='Menu_th';
            
    div=this;
            
    this.className='"menu_th_sel"';    

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    17

    ??

    :master:
    nn riesco a farlo funzionare..vabbè..

    ora mi si presenta un'altro problema..se volessi caricare una tabella all'interno di un div inizialmente vuoto?

    cioè..clicco chi siamo e in un div più basso mi si apre il suo sotto menu contenuto in una pagina es: chi_siamo.html , che non è altro che una tabella con le voci del sotto menu.

    ho utilizzato ajax ma nn m va il codice..

    script.js
    la variabile "quale" contiene l'ID del div selezionato che corrisponderà al nome dell pagina .html
    function sottomenu(quale){
    document.getElementById("home").className = "menu_th";
    document.getElementById("chi_siamo").className = "menu_th";
    document.getElementById("architettura").className = "menu_th";
    document.getElementById("risparmio_energetico").cl assName = "menu_th";
    document.getElementById("certificazioni").classNam e = "menu_th";
    document.getElementById("contatti").className = "menu_th";
    //SELEZIONATO
    document.getElementById(quale).className = "menu_th_sel";

    var url = quale+".html";
    XMLHTTP = RicavaBrowser(CambioStato);
    XMLHTTP.open("GET", url, true);
    XMLHTTP.send(null);
    }

    function CambioStato()
    {

    if (XMLHTTP.readyState == 4)
    {
    var R = document.getElementById("menulaterale");
    R.innerHTML = XMLHTTP.responseText;
    }
    }

    function RicavaBrowser(QualeBrowser)
    {
    if (navigator.userAgent.indexOf("MSIE") != (-1))
    {
    var Classe = "Msxml2.XMLHTTP";
    if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
    {
    Classe = "Microsoft.XMLHTTP";
    }
    try
    {
    OggettoXMLHTTP = new ActiveXObject(Classe);
    OggettoXMLHTTP.onreadystatechange = QualeBrowser;
    return OggettoXMLHTTP;
    }
    catch(e)
    {
    alert("Errore: l'ActiveX non verrà eseguito!");
    }
    }
    else if (navigator.userAgent.indexOf("Mozilla") != (-1))
    {
    OggettoXMLHTTP = new XMLHttpRequest();
    OggettoXMLHTTP.onload = QualeBrowser;
    OggettoXMLHTTP.onerror = QualeBrowser;
    return OggettoXMLHTTP;
    }
    else
    {
    alert("L'esempio non funziona con altri browser!");
    }
    }
    ovviamente nella pagina chiamante esiste il <div id="menulaterale"></div>

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.