Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX]jquery, problem z funkcja
trucksweb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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");
        }
    );
}
);
Go to the top of the page
+Quote Post
trucksweb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




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.
Go to the top of the page
+Quote Post
trucksweb
post
Post #5





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:39