[RISOLTO]assegnare onclick ad un elemento td

di il
5 risposte

[RISOLTO]assegnare onclick ad un elemento td

Buona sera forum . Il mio obiettivo e quello di far comparire il contenuto di un div quando clicco su un elemento td. Esempio se clicco sull'elemento della tabella 1.1 deve comparire il div con contenuto 1.1.
Allora ho buttato giù alcune righe di codice che ora vi posto :
<!DOCTYPE HTML>
<html>
   <head>
      <title>Prova2</title>
      <style>
        .div{display:none}
      </style>
      <script> 
      function showDivOnClick(e)
      {
         e.style.display = "block";
         setTimoeut(e.style.display = "none", 5000);
      }
      </script>
   </head>
   <body>
      <table border="1">
         <thead>
           <th>Campo1</th>
           <th>Campo2</th>
         </thead> 
         <tbody>
           <tr>
             <td id = "uno.uno" onclick = showDivOnClick(document.getElementById("div1")>1.1</td>
             <td id = "uno.due">1.2</td>
           </tr>
           <tr>
             <td id = "due.uno">2.1</td>
             <td id = "due.due">2.2</td>
           </tr>
         </tbody>
      </table>
      <div class = "div" id = "div1">
         1.1
      </div>
      <div class = "div" id = "div2">
         1.2
      </div>
      <div class = "div" id = "div3">
         2.1
      </div>
      <div class = "div" id = "div4">
         2.2
      </div>  
   </body>
</html>
Quando provo a cliccare sull'elemento della tabella, dove ho inserito la funzione con l'onclick mi da questo errore: Uncaught SyntaxError: Unexpected token } ;
Ora in primo luogo vorrei sapere se sto procedendo nel modo giusto. E poi se mi potete aiutare a far funzionare questo piccolo script . Grazie

5 Risposte

  • Re: [RISOLTO]assegnare onclick ad un elemento td

    onclick = showDivOnClick(document.getElementById("div1")
    Manca la parentesi ) di chiusura
  • Re: [RISOLTO]assegnare onclick ad un elemento td

    Oh grazie . Comunque adesso mi da questo errore: Uncaught ReferenceError: none is not defined; quindi credo che ci sia qualcosa che non va nel modo in cui ho provato a fare questo script Consigli??
  • Re: [RISOLTO]assegnare onclick ad un elemento td

    Aggiornamento della situazione. Dopo alcune prove sono riuscito a correggere alcuni errori.
    Il codice è questo:
    <!DOCTYPE HTML>
    <html>
       <head>
          <title>Prova2</title>
          <style>
            .div{display:none}
          </style>
          <script type="text/javascript">
          function showDivOnClick(e)
          {
             e.style.display = "block";
             setTimeout('e.style.display=\'none\'', 5000);
          }
          </script>
       </head>
       <body>
          <table border="1">
             <thead>
               <th>Campo1</th>
               <th>Campo2</th>
             </thead> 
             <tbody>
               <tr>
                 <td id = "uno.uno" onclick = "showDivOnClick(document.getElementById(&#34div1&#34))">1.1</td>
                 <td id = "uno.due" onclick = "showDivOnClick(document.getElementById(&#34div2&#34))">1.2</td>
               </tr>
               <tr>
                 <td id = "due.uno" onclick = "showDivOnClick(document.getElementById(&#34div3&#34))">2.1</td>
                 <td id = "due.due" onclick = "showDivOnClick(document.getElementById(&#34div4&#34))">2.2</td>
               </tr>
             </tbody>
          </table>
         
          <div class = "div" id = "div1">
             1.1
          </div>
          <div class = "div" id = "div2">
             1.2
          </div>
          <div class = "div" id = "div3">
             2.1
          </div>
          <div class = "div" id = "div4">
             2.2
          </div>  
       </body>
    </html>
    Ora mi restituisce come errore questo : Uncaught ReferenceError: e is not defined (anonymous function).
    Praticamente da quello che ho capito esegue la prima istruzione della funzione, perchè il contenuto del div viene mostrato. Ma dopo i 5 secondi impostati nel setTimeout, questo non scompare ma mi restituisce l'errore che vi ho esposto sopra. Aspetto vostri consigli. Grazie
  • Re: [RISOLTO]assegnare onclick ad un elemento td

    Ciao, per poter passare un argomento alla funzione che usi nel setTimout devi usare una funzione anonima:
    
    function showDivOnClick(e) {
        e.style.display = "block";
        setTimeout( function() {
            e.style.display = "none"; }
            , 5000);
    }
    
  • Re: [RISOLTO]assegnare onclick ad un elemento td

    Grazie mille adesso funziona e ho capito come funziona questo aspetto di javascript. Grazie a tutti per l'aiuto
Devi accedere o registrarti per scrivere nel forum
5 risposte