Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pokazywanie/ukrywanie elementu na 1 przycisku - jQuery
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ratosluaf
Mam taki kod:
  1. $('#nav li').click(
  2. function () {
  3. $('ul', this).stop(true, false).fadeIn(300);
  4. });


Chciałbym, aby tym samym przyciskiem mógłbym ukryć 'ul'. Próbowałem czegoś takiego:
  1. $('#nav li').click(
  2. function () {
  3. $('ul', this).stop(true, false).fadeIn(300);
  4. status == true;
  5. },
  6. if (status == true){
  7. $('ul', this).stop(true, false).fadeOut(300);
  8. status == false;
  9. }
  10. );

Jednak nie działa. Co mogę tutaj zmienić? Gdy użyję toggle, to linki stają się nieklikalne, więc odpada.
gr56
Kod
$('#nav li').toggle(
    function () {
        $('ul', this).stop(true, false).fadeIn(300);
    },
    function() {
        $('ul', this).stop(true, false).fadeOut(300);
    }
);
ratosluaf
Wszystko byłoby okej, ale linki po pokazaniu tego diva są nieklikalne. Pokazują się, ale po kliknięciu nic się nie dzieje.

  1. jQuery.noConflict();
  2. jQuery(function($) {
  3.  
  4. $(document).ready(function() {
  5. mstat = false;
  6. });
  7.  
  8. function shide () {
  9. $('div.usermenu').stop(true,false).fadeOut(150);
  10. $('span#username').removeClass('active');
  11. mstat = false;
  12. }
  13.  
  14. $('span#username').click(function(event) {
  15. event.stopPropagation();
  16. if (mstat == false) {
  17. $('div.usermenu').stop(true,false).fadeIn();
  18. $('span#username').addClass('active');
  19. mstat = true;
  20. } else {
  21. shide();
  22. }
  23. });
  24.  
  25. $('html').click(function() {
  26. if (mstat == true) shide();
  27. });
  28.  
  29. });


Dlaczego to nie działa?
http://jsfiddle.net/DVTzG/
Kliknijcie na nick na górze raz, potem już nie da się zamknąć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.