2010-06-26 18 views
9

Próbuję pokazać/ukryć element div przy użyciu jquery po kliknięciu łącza. Ja to w mojej sekcji head:Jquery show div po kliknięciu linku

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

mam link, który wygląda tak:

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

a div, który wygląda tak:

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

To nie robi pracować i nie mogę zrozumieć dlaczego. Jakieś pomysły?

Odpowiedz

23

Musisz dołączyć obsługi w document.readyclick w celu upewnienia się, że DOM został załadowany przez przeglądarkę, a wszystkie elementy są dostępne:

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

Również zapomniałem umieścić nawias () obok do anonimowej funkcji w obsłudze click.

+0

Dodałbym również "return false;" na końcu funkcji, aby numer # nie znalazł się w miejscu, ale to tylko osobiste preferencje. –

+0

@Daniel, dobra uwaga, zaktualizowałem swój post. –

+0

To działa pięknie. Masz pomysł, jak mogę ukryć element div, gdy użytkownik kliknie link po raz drugi? – Thomas

2

Jest szansa, że ​​DOM nie jest jeszcze w pełni załadowany.

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

włóż to do głowy i umieść tam swój kod inicjalizacyjny.

Powiązane problemy