Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Funkcja toggle() pod Google Chrome
#1
Witam. Właśnie z tą funkcją mam problem. Mianowicie, gdy ustawiam parametr toggle (np toggle(200)), określający szybkość rozwijania Chrome psuje mi układ tabeli. Pod FF i IE działa wszystko w porządku. Gdy usunę parametr (zostawie toggle()) Chrome juz nie psuje mi układu. Czy to, jak rozumiem, Chrome po prostu nie obsługuje poprawnie toggle z tym parametrem?
Odpowiedz
#2
Chrome w ogóle dziwnie działa z js. Może oddzielny styl?
Odpowiedz
#3
Oddzielny styl? Mozesz rozwinąć? Dorzucam kod dla jasności.Bez parametru "200" skrypt działa sprawnie pod Chrome.

$('#rozwin0').click(function(){
$('#ukryty0').toggle(200);
}).toggle(function(){
$('#rozwin0').html('Zwiń<img src="../images/zwin.png" />').addClass('zwin');
}, function(){
$('#rozwin0').html('Rozwiń<img src="../images/rozwin.png" />');
});
Odpowiedz
#4
????
A od kiedy .toggle(200) ustawia szybkość animacji?


http://jqapi.com/#p=toggle

Ty podpinasz 2 x toggle...

Poza tym tabele mają wyświetlanie table lub table-cell (komorki ect). Domyślnie ukrywanie i pokazywanie to dispaly:block i display:none. Pamiętam że spokojnie to obchodziłem własnym kodem.
Odpowiedz
#5
dla toggle mozna ustawić szybkość rozwijania. W dokumentacji do której linka wkleiłeś także stoi $("p").toggle("slow");. Podpinanie 2x toggle też się sprawdza dla każdej z przeglądarek, więc nie jest błędem. Jak pisałem, problem polega na tym, że Chrome psuje układ tabeli w momencie dodania do toggle parametru jak wyżej.
Pokombinuje jeszcze trochę. Ale szybciej pewnie poszłoby mi z jakimiś wskazówkami, więc byłbym wdzięcznySmile.
I jeszcze jedno pytanko a'propos ukrywania elementów tabeli, jeśli nie display dla wiersza, to co?
Odpowiedz
#6
Nie. Toggle się podpina 1 raz. To że się sprawdza nie oznacza że jest dobrze. To tak jakbym podpinał 2x click.
Pokombinuj z 2 funkcjami w śrdoku, szukaniem (find) tabeli itp i ustawianiu odpowiedniego sposobu renderowania
Odpowiedz
#7
$('#rozwin0').click(function(){
$('#ukryty0').slideToggle(400);
}).toggle(function(){
$('#rozwin0').html('Zwiń<img src="../images/zwin.png" />').addClass('zwin');
}, function(){
$('#rozwin0').html('Rozwiń<img src="../images/rozwin.png" />');
});
Działa sprawnie także pod Chrome. Pierwsze toggle zmienia widoczność elementu, drugie posiada argumenty, więc przełącza stan pomiędzy nimi. Nie ma tu żadnego konfliktu. Rozglądałem sie, podpinanie 2x toggle to stosowana praktyka. Dodatkowo slideToggle z argumentem 400 też działa niezawodnie. Trudno mi zatem zgodzić z Twoją opinią kartofelku. Mimo to dzieki za wskazówki, pozdrawiamSmile. i hmm..kartofelek, to jak rozumiem, taka pyrka??;p
Odpowiedz
#8
To jest błędna praktyka. Takich z dupy tutoriali jest w necie milion pińcet więc to nie jest żaden wyznacznik.

Ty powinieneś użyć toggle i tyle.

Kod:
$('#rozwin0').toggle(
     function() {
          $('#ukryty0').slideDown(400);
          $(this).html('Zwiń ....');
     },
     function() {
          $('#ukryty0').slideUp(400);
          $(this).html('Rozwiń....');
     }
)

A teraz proste pytanie - czemu NIE tak jak ty to zrobiłeś?
1) bo 1 rzecz na kilka zdarzeń - źle.
2) poklikaj sobie szybko w ten twój "guzik". Zobaczysz piękny efekt powtarzania Smile?

Zresztą nawet w powyższym kodzie widać błędy. Ogólnie toggle w takich zastosowaniach się po prostu nie sprawdza (patrz pkt 2). O wiele lepiej zrobić click wraz z wykrywaniem czy dany element jest animowany, stopowaniem animacji ect. No i o wiele lepiej używać parents, children ect zamiast id.

Ps. Wrzucanie DIV do środka A też działa poprawnie, tak samo jak używanie U, CENTER ect.
Odpowiedz
#9
Racja, wygląda to co najmniej bardziej logicznie. Póki co zostawie toggle, bo to, co pisałes na końcu jest mi jeszcze troche obce. Dzięki.
Odpowiedz
#10
Tutaj pisałem o animacji. Na górze wybierz temat "animacja w jquery". Jest tam też właśnie o stopowaniu itp
http://doman.art.pl/kursjs/kurs/jquery/jquery.html
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  funkcja nieustannie czytajaca wartosci input Arnimarl 1 2,998 25-05-2014, 07:39
Ostatni post: Arnimarl
  aby funkcja JQuery zadzialala po okreslonym czasie Arnimarl 2 3,825 25-05-2014, 07:38
Ostatni post: Arnimarl
  Jak wypozycjonować content strony z paskiem Google Translate ZaqU 4 4,074 10-04-2014, 19:54
Ostatni post: kornell
  Niepoprawne zachowanie Chrome lomek 1 2,620 12-09-2013, 00:09
Ostatni post: Kartofelek
  [CSS] Problem z wyświetleniem mapy google spolprog 2 3,373 24-07-2013, 19:02
Ostatni post: atp

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl