2010-06-26 13 views
9

Sto cercando di mostrare/nascondere un div utilizzando jquery quando si fa clic su un collegamento. Ho messo questo nella mia sezione testa:Jquery mostra div quando viene cliccato il link

<script type="text/javascript"> 
    $("#attach_box").click(function { 
    $("#sec_box").show() 
    });   
</script> 

ho un link che assomiglia a questo:

<a href="#" id="attach_box">+ Add a Postal Address (If Different)</a> 

E un div che assomiglia a questo:

<div id="sec_box" style="display: none;"> 
Hello world!!    
</div> 

Questo non lo fa lavoro e non riesco a capire perché. Qualche idea?

risposta

23

è necessario collegare il gestore click nel document.ready al fine di assicurarsi che il DOM è stato caricato dal browser e tutti gli elementi sono disponibili:

<script type="text/javascript"> 
    $(function() { 
     $('#attach_box').click(function() { 
      $('#sec_box').show(); 
      return false; 
     });   
    }); 
</script> 

Inoltre è dimenticato di mettere tra parentesi () prossimo alla funzione anonima nel gestore click.

+0

Aggiungerei anche "return false;" alla fine della funzione in modo che il # non finisca nella posizione, ma questa è solo una preferenza personale. –

+0

@Daniel, buona osservazione, ho aggiornato il mio post. –

+0

Che funziona magnificamente. Qualche idea su come potrei andare a nascondere il div quando l'utente fa clic sul link una seconda volta? – Thomas

2

È probabile che il DOM non sia ancora completamente caricato.

<script type="text/javascript"> 
     $(document).ready(function() 
     { 
     $("#attach_box").click(function() { 
     $("#sec_box").show() 
     }); 
     });  
    </script> 

metti quello nella tua testa e metti il ​​tuo codice di inizializzazione lì.

Problemi correlati