Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
[jQuery] Zamykanie / otwieranie przy pomocy hide i show
|
Liczba postów: 86
Liczba wątków: 60
Dołączył: 04-03-2009
Reputacja:
0
Witam,
chciałbym zrobić sobie, aby nad akapitem lub divem była belka z napisem. Po kliknięciu na nią div / akapit ukrywa się. Po następnym pokazuje itd.
Wiem że mogę użyć hide i show z jquery, np. tak jak tu:
Kod: <a href="index.php#" onclick='$("p.znikanie").hide("fast")'>ZNIKNIJ</a><br>
<a href="index.php#" onclick='$("p.znikanie").show("slow")'>POKAZ</a>
<br /><br />
<p class="znikanie">
To jest testowy teskt, który może sobie zniknąć!<br>
To jest testowy teskt, który może sobie zniknąć!
</p>
ALE mam problem 
Jak widać, wiem jak to zrobić na 2 przyciskach... jak to zrobić tak, aby 1 przycisk "wiedział", że dany akapit / div jest w danej chwili zwinięty / rozwinięty?
Na js nie znam się kompletnie, łopatologiczne wyjaśnienie co-i-jak będzie więc bardzo na miejscu
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
Użyj toggle
Kod: $("p").toggle(function(){
$(this).hide("fast");
},function(){
$(this).show("slow");
});
Liczba postów: 86
Liczba wątków: 60
Dołączył: 04-03-2009
Reputacja:
0
No i teraz mam przykładowo tak:
Kod: <script>
$(document).ready(function(){
$("button").click(function () {
$("p").toggle();
});
$("p").toggle(function(){
$(this).hide("slow");
},function(){
$(this).show("slow");
});
});
</script>
<button>Przycisk</button>
<p>Testowy tekst teskt teskt teskt</p>
Ale co gdy chcę dać 2 takie same elementy na stronę, które będą od siebie niezależne? Kopiowanie chyba nie ma sensu...
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
11-08-2009, 04:37
(Ten post był ostatnio modyfikowany: 11-08-2009, 04:40 przez Labsta.com.)
To może tak
Kod: $("a.przycisk").toggle(function(){
$(this).next("p").hide("slow");
},function(){
$(this).next("p").show("slow");
});
i
Kod: <a href="#" class="przycisk">klik</a>
<p>
cos tam
</p>
<a href="#" class="przycisk">klik</a>
<p>
cos tam
</p>
<a href="#" class="przycisk">klik</a>
<p>
cos tam
</p>
Pisze z glowy, więc mogłem gdzieś się pomyklić, ale raczej jest dobrze.
Liczba postów: 86
Liczba wątków: 60
Dołączył: 04-03-2009
Reputacja:
0
13-08-2009, 04:26
(Ten post był ostatnio modyfikowany: 13-08-2009, 04:34 przez lukasamd.)
Wszystko mi obecnie działa jak chciałem, ale mam jeszcze jedno pytanie.
Jak zrobić, aby dane bloki na wstępie były zamknięte?
Dodałem sobie do funkcji ready kod:
Kod: $("div.nav").hide("fast");
ale nieco dziwnie to wygląda: gdy sie ładuje to są otwarte, a potem się zamykają
PS: Jednak mam mały problem - efekt występuje po DRUGIM naciśnięciu na linka... nie powinien czasem po pierwszym?
PS2: Ten problem to wywołany chyba przez moją zmianę - najpierw zwija już zwinięte a potem dopiero rozwija
EDIT:
Już sobie poradziłem, wystarczyło dodać do css display: none;
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
No to może odwrotnie
Kod: $("div.nav").hide("fast");
$("a.przycisk").toggle(function(){
$(this).next("p").show("slow");
},function(){
$(this).next("p").hide("slow");
});
Pozmieniaj sobie tylko klasy. Ten patent z css display: none; nie jest najlepszy, bo Ci co nie mają js nie zobaczą nic. Możesz to dodać w js, wtedy będzie to sensowniejsze, a efekt podobny do $("div.nav").hide("fast");
Liczba postów: 86
Liczba wątków: 60
Dołączył: 04-03-2009
Reputacja:
0
No tak, rzeczywiście jak ktoś miałby wyłączone js to nie pokazałoby zupełnie nic.
A nie da się tego zrobić przy innym zdarzeniu? W wypadku ready zamykają się po załadowaniu. Próbowałem load (document oraz window), ale wtedy nie działa lub chowa tak samo jak w wypadku ready.
Liczba postów: 682
Liczba wątków: 9
Dołączył: 03-03-2009
Reputacja:
18
A to co napisałem powyżej nie działa (gdy podstawisz swoje klasy)?
Analogiczne zrobiłem to w tym tutku: http://websta.pl/tutoriale/jquery-wysuwany-boczny-panel-menu
to moż tak, trochę inaczej:
Kod: $("p").css("display", "none");
$("a.przycisk").toggle(function(){
$(this).next("p").show("slow");
},function(){
$(this).next("p").hide("slow");
});
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
HTML/CSS/JQUERY - Potrzebuje pomocy / Bezradność |
jokerblitzz |
10 |
10,229 |
28-04-2016, 00:24
Ostatni post: mubi
|
|
jquery? |
mordrag |
0 |
2,337 |
29-03-2015, 17:44
Ostatni post: mordrag
|
|
Formukarz kontaktowy [Pomocy] |
bahafo |
3 |
5,935 |
08-01-2015, 13:31
Ostatni post: Kartofelek
|
|
aby funkcja JQuery zadzialala po okreslonym czasie |
Arnimarl |
2 |
3,823 |
25-05-2014, 07:38
Ostatni post: Arnimarl
|
|
Konflikt Mootools/Jquery |
kurde |
2 |
3,248 |
31-10-2013, 01:44
Ostatni post: kornell
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|