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

    Menu in frame: come settare il current?

    Ciao a tutti. Dopo diversi tentativi, credo di aver bisogno di un esperto javascript!!!
    Ho un menù creato con i CSS in un frame (topframe). Quando clicco su una voce di menù, si apre una pagina in un secondo frame (mainframe). Funziona bene ma non riesco a visualizzare la voce corrente del menù.
    Provo a postare il codice del menù per farmi capire meglio:

    <div id="tabs5">
    <ul>
    <li id="current"><span>Indice</span>[*]<span>ASP.NET</span>[*]<span>HTML</span>[*]<span>FLASH</span>[*]<span>CSS</span>[*]<span>Graphics</span>[*]<span>Javascript</span>[*]<span>Web Design</span>[*]<span>Immagini</span>[/list]
    </div>

    Se premo su Javascript, vorrei che id="current" fosse Javascript.

    Si può fare?
    Grazie in anticipo, Carmen
    Carmen

  2. #2
    Nessun aiuto?
    Ciao, Carmen
    Carmen

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    sinceramente non capisco cosa vuoi fare...
    perche vuoi che id="current" sia JAVASCRIPT (ossia il link premuto?)

    devi tenere traccia di dove sei? nel senso....lavorando con un menu simile al tuo ho avuto l'esigenza che al refresh della pagina venisse visualizzato nell'iframe l'ultimo link visitato....

    e' cosi anche per te?
    spiega meglio quello che vuoi ottenere e vedrai che troveremo la risposta

  4. #4
    id="current" indica al CSS che deve applicare lo stile "current" alla voce di menù che ho selezionato. Per esempio: le voci del menù sono bianche ma se ho cliccato su Javascript la scritta è rossa.

    Solitamente metto il codice che ho postato in tutte le pagine del sito e se ad esempio sono nella pagina Javascript.html avrò:

    <div id="tabs5">
    <ul>[*]<span>Indice</span>[*]<span>ASP.NET</span>[*]<span>HTML</span>[*]<span>FLASH</span>[*]<span>CSS</span>[*]<span>Graphics</span>
    <li id="current"><span>Javascript</span>[*]<span>Web Design</span>[*]<span>Immagini</span>[/list]
    </div>

    e nel menù la scritta Javascript sarà rossa.

    Nel mio caso attuale invece il menù è nella prima pagina e le pagine corrispondenti alle voci di menù vengono visualizzate nel frame "mainFrame".
    Quindi non so come indicare alla pagina principale che la scritta Javascript del menù deve essere rossa.

    Non so se ora è più chiaro... Comunque ti ringrazio anticipatamente.
    Ciao, Carmen
    Carmen

  5. #5
    Nessuna idea?
    Carmen

  6. #6
    per me è errata la logica, l'id identifica un preciso oggetto all'interno della pagina, non va cambiato.

    Per fare quello che vuoi fare devi usare le classi

    basta che al posto di definire #current definisci .current

    e poi cambi la classe all'oggetto togliendola a quello che la ha e mettendola a quello che ti interessa.

    spero di essermi spiegato almeno un pochino
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Ti assicuro che la logica è giusta perchè la uso di frequente e va bene.
    Il problema è che ora ho bisogno di uno script che, quando carico la pagina, mi setta la voce di menu scelta come corrente.
    Se anche usassi una classe al posto dell'id, avrei sempre il problema di farla settare al caricamento della pagina!

    Ciao, Carmen
    Carmen

  8. #8
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title></title>
      <script>
        function evidenziaMenu(obj){
          obj.parentNode.className="current"
        
          var container = document.getElementById("tabs5");
          var li = container.getElementsByTagName("li");
        
          for (var i=0;i<li.length;i++){
            var cur = li[i].getElementsByTagName("a")[0].getElementsByTagName("span")[0];
            if(cur.innerHTML != obj.getElementsByTagName("span")[0].innerHTML)
               li[i].className = ""
          }
        
        }
    
        
      </script>
      <style>
        .current{
          color:red;
        }
        li{
          color:yellow;
        }
      </style>
      </head>
      <body>
        <div id="tabs5">
          <ul>
          <li class="current"><span>Indice</span>[*]<span>ASP.NET</span>[*]<span>HTML</span>[*]<span>FLASH</span>[*]<span>CSS</span>[*]<span>Graphics</span>[*]<span>Javascript</span>[*]<span>Web Design</span>[*]<span>Immagini</span>[/list]
        </div>
      </body>
    </html>
    ti ho buttato giù un esempio...vedi un po' se fa al caso tuo.

    Rimango comunque dell'idea che dal punto di vista formale spostare l'id da un tag all'altro è scorretto, quindi te l'ho fatto con le classi

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  9. #9
    Grazie Shagrat!
    Purtroppo oggi non ho tempo di provare il tuo codice. Domani ti farò sapere.
    Grazie ancora!
    Carmen
    Carmen

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.