Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX]jquery, problem z funkcja
Forum PHP.pl > Forum > Przedszkole
trucksweb
napisalem wlasna mini funkcje jquery do pokazywania ukrytego fragmentu kodu:
  1. $(document).ready (
  2. function()
  3. {
  4. $("#pokaz").click(
  5.  
  6. function() {
  7. $("#pokaz").removeClass("plus");
  8. $("#pokaz").addClass("minus");
  9.  
  10.  
  11. $(".minus").click(
  12. function() {
  13. $("#pokaz").removeClass("minus");
  14. $("#pokaz").addClass("plus");
  15. }
  16. );
  17.  
  18. $("#ukryj").toggle("fast");
  19. }
  20. );
  21. }
  22. );


i mam maly problem.
Funkcja po kliknieciu w link
<a href="#" id="pokaz" class="plus">#</a>
pokazuje diva
<div id="ukryj" style="display:none;">lorem</div>
i zmienia klase w linku na minus, czyli:
<a href="#" id="pokaz" class="minus">#</a>


Wszystko jest ok za pierwszym razem, klikam w +, zamienia sie na -, klikam w - zamienia sie na + i na tym sie konczy. W tym momencie, kiedy klikam na + div sie pokazuje ale nazwa klasy nie ulega zmianie.

dlaczego ?
wookieb
Kod
$(document).ready (
function()
{
    $("#pokaz").click(

    function() {
        
        if($(this).attr('class')=='plus')
        {
            $(this).removeClass("plus").addClass("minus");
        }
        else
        {
            $(this).removeClass("minus").addClass("plus");
        }

        $("#ukryj").toggle("fast");
        }
    );
}
);
trucksweb
a jeszcze pytanie, jak mam <div id="cos">
i w nim kilka <p id=pokaz> i kilka <div id=ukryj>

to jak najprosciej sprawdzic, ktory z nich zostal klikniety zeby schowac odpowiedniego ? niestety nie moge uzyc listy.
Probowalem przerobic powyzsza funkcje na znaczniki h2 (zeby nie miec konfliktu z <p> do formatowania tekstow, ale utknalem w tym samym miejscu... jak rozroznic jeden od drugiego ?
wookieb
Po pierwsze nie może być w dokumencie pare elementów o tym samym id. Używa sie wtedy klas.
Kod
$('#cos .plus)


Daje ci wszystkie elementy nieodsloniete.
trucksweb
no fakt- prawda.

mam teraz taki kod:
  1. <?php
  2. $(document).ready (
  3. function()
  4. {
  5.    $(".glowna .minus").click(
  6.  
  7.    function() {
  8.        
  9.        if($(this).attr('class')=='plus')
  10.        {
  11.            var element_index = $(".plus").index(this);
  12.            $(element_index).removeClass("plus").addClass("minus");
  13.        }
  14.        else
  15.        {
  16.            var element_index = $(".minus").index(this);
  17.            $(element_index).removeClass("minus").addClass("plus");
  18.        }
  19.  
  20.        $(".ukryj").eq(element_index).toggle("fast");
  21.        
  22.        alert(element_index);
  23.        }
  24.    );
  25.    
  26.    
  27. }
  28. );
  29. ?>


funkcja jzu rozpoznaje ktore ".minus" zostalo klikniete i wszystki pieknie dziala poza tym, ze nie zmienia mi - na + .
Moze ktos wie jak to naprawic ?
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.