Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Elegancki kod., Kod który działa ale jest "brzydki"
saund
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.08.2013

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


Hej!

Jestem początkującym programistą JS i korzystam z framewoka jQuery.

  1. function maximumZindex () {
  2. "use strict";
  3. var highestZindex = 0;
  4. frame.contents().find('body *').each(
  5. function zIndexCheck () {
  6. if (isNaN(Number($(this).css("zIndex")))) ; // Do nothing when .css() return "auto"
  7. else if ($(this).css("zIndex")>highestZindex)
  8. highestZindex = $(this).css("zIndex");
  9. })
  10. highestZindex++;
  11. return highestZindex;
  12. };
  13. //v2
  14. function maximumZindex () {
  15. "use strict";
  16. var highestZindex = 0;
  17. frame.contents().find('body *').each(
  18. function zIndexCheck () {
  19. if (!isNaN(Number($(this).css("zIndex")))) {
  20. if($(this).css("zIndex")>highestZindex)
  21. highestZindex = $(this).css("zIndex");
  22. };
  23. })
  24. highestZindex++;
  25. return highestZindex;
  26. };
  27.  


Są dwie wersje tego samego skryptu.
Opis działania: Skrypt wyszukuję największy z-index występujący na stronie w ramce iframe ( $("#frame") = frame ). Pierwszy IF sprawdza czy .css() nie zwraca wartości auto (Nie chcę porównywać "auto" z liczbą a parsowanie "auto" na inta wzraca NaN)jeśli tak to nic nie robi jeśli nie to porównuje do ostatniego największego z-index jakiego napotkał i jeśli jest większy to staje się aktualnym największym z indexem.

Postanowiłem zapytać się znajomego, który jest programistą JS czy kod jest poprawny (pokazałem mu pierwszą wersje) powiedział, że pusty IF nie przejdzie nigdzie więc ok napisałem drugą i powiedział, że kod jest beznadziejny i oprócz tego, że brakuję wywołania wewnętrznej funkcji zIndexCheck() wiem bo tylko tego się od niego dowiedziałem. Zasugerował mi też, że $('body *').each(...) jest za wolny w jaki inny sposób(szybszy) mogę sprawdzić jakie z-index mają wszystkie objekty występujące na stronie.

Co mogę zrobić, żeby ten kod był "elegancki" ?

Ten post edytował saund 18.08.2013, 22:43:29
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: 24.12.2025 - 08:37