![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jak sprawdzić, czy metoda .toggle() ukryła własnie element czy go pokazała? Kod $(this).children('ul').toggle(speed);//ukrywamy albo pokazujemyt dzieciaki if ($(this).children('ul').is(":visible")) { alert('ROBIMY ADD'); $(this).children('a').addClass('active'); } else { alert('ROBIMY REMOWE'); $(this).children('a').removeClass('active'); } Powyższy warunek "is visible" zwraca mi zawsze true. W czym jest problem? Czy problemem jest to, że nie odnosze się do tego elementu co trzeba? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
przecież w toggle możesz wywołać callback, a tam jakąś zmienną zmieniać lub przypisać coś do .data i już wiesz w którym trybie jest dany element...
http://api.jquery.com/toggle/ -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
przecież w toggle możesz wywołać callback, a tam jakąś zmienną zmieniać lub przypisać coś do .data i już wiesz w którym trybie jest dany element... http://api.jquery.com/toggle/ Tak, moge wywołac funkcje, ale w tym callback nie mam infomracji, czy akurat ukryto, czy pokazano element.. i tu jest problem.. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No to przecież możesz wykonać:
Na siłę wynajdujesz problem. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 600 Pomógł: 2 Dołączył: 1.09.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
No to przecież możesz wykonać:
Na siłę wynajdujesz problem. ![]() Już załątwiłem sprawe: Kod var $that = $(this).children('a'); $(this).children('ul').toggle(200, function() { if ($(this).is(":visible")) { $that.addClass('active'); } else { $that.removeClass('active'); } }); jak wykonuje funkcje callback i wtedy sprawdzam czy jest vidoczny element $(this) wtedy rozpoznaje poprawnie i wszystko jest ok. Mam tylko jeszcze jedno pytanie.. Jak zmodyfikowac element: $that.removeClass('active'); Aby kasował ten styl również dla głębiej zagnieżdżonych elementów li ? Ten post edytował kukix 24.11.2011, 13:58:38 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Nie wiem czy to zadziła:
$that.parents('li').removeClass('active'); lub pokombinuj z : find(); |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
jak już wspomniał Erix na siłę wynajdujesz problemy... skoro ustawiasz speed to callback'a nawet do swojego sprawdzenia musisz dać a nie tak od razu i nie wiem, czy pseudo klasa w jQuery :visible obejmuje też .css("display")=='block', dlaczego to piszę
![]() ale to wspomniałem o metodach jQuery... przecież wiesz z jakiego stanu startują Twoje elementy na Twojej stronie - optymalniej by było skorzystać z jakiejś zmiennej pomocniczej bądź a jQuerowego .data dla danego elementu... Ten post edytował zegarek84 24.11.2011, 14:46:42 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 14:15 |