Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Metoda, która nic nie robi
SmokAnalog
post
Post #1





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Witajcie,

czy w jQuery istnieje metoda, która nic nie robi? Śpieszę wyjaśnić o co mi chodzi. Lubię korzystać z mechanizmu łańcuchowania i chciałbym zachować kontekst elementu nawet w sytuacji, kiedy dana metoda może (ale nie musi) być wykonana. Chodzi mi konkretnie o taką sytuację:

[JAVASCRIPT] pobierz, plaintext
  1. $("#element")
  2. .attr("id", "identyfikator")
  3. .addClass("element")
  4. [warunek ? "hide" : "nicNieRob"]()
  5. .appendTo("body")
  6. [warunek ? "fadeIn" : "nicNieRob"]();
[JAVASCRIPT] pobierz, plaintext


Dodaję element do body i w zależności od warunku animacja się odbywa lub nie. Dla pewności, że element nie pojawi się przed płynnym pojawieniem się, ukrywam go. Zamierzony efekt mogę oczywiście łatwo osiągnąć rozbijając kod na cztery części, jednak interesuje mnie bardziej eleganckie rozwiązanie. Co myślicie w ogóle o takiej składni?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Czy taka kolejność wykonywania: ukrycie - dodanie do DOM - fadeIn, jest jedyną w tym przypadku zalecaną kolejnością? Czy wywołanie najpierw fadeIn, a potem append może spowodować efekt pojawienia się elementu, gdy ten jest w trakcie animacji?
Tak i tak. Wyświetlanie elementu w oknie przeglądarki i działanie JS są realizowane w osobnych wątkach dlatego należy pilnować się w kolejności kodu. Innymi słowy, przeglądarka może rozpocząć renderowanie fragmentu strony nim zdążą wykonać się wszystkie Twoje operacje w JS.
[JAVASCRIPT] pobierz, plaintext
  1. $("<p>test</p>").hide().appendTo("body").fadeIn(); // zagwarantuje dodanie ukrytego elementu do DOMu i jego rozwinięcie
  2. $("<p>test</p>").appendTo("body").hide().fadeIn(); // może skutkować "mignięciem" elementu na ekranie przed jego ukryciem i ponownym rozwinięciem
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Crozin 15.03.2013, 20:17:28
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 23:39