Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Wartość inna niż ustawiona przed chwilą
starach
post 10.06.2011, 16:04:55
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Cześć,

Zrobiłem sobie slideshow. Niestety z niewyjaśnionych przyczyn wartość css('left') po ponownym odczytaniu jest zupełnie inna niż ustawiona przed chwilą.
  1. <script type="text/javascript">
  2. $('#slideshow .slides ul').css('left', $iNewLeft * -1);
  3. console.log("Nowa odległość: " + $iNewLeft * -1); // -840 - Tyle powinno być
  4. console.log("Nowa odległość2: " + $('#slideshow .slides ul').css('left')); // -1008px - Że jak?
  5. </scrpit>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
everth
post 10.06.2011, 16:19:07
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Ile elementów DOM podpada pod ten selektor? Coś mi mówi że ustalasz atrybut left dla zbioru elementów a później go pobierasz. Nie wiem jak jQuery zachowuje się gdy gdy pobiera wartość stylu dla grupy elementów. Ewentualnie prześledź na drzewie atrybuty style (tam jQuery zapisuje swoje wartości) dla tego selektora i zobacz czy czymś się nie różnią od zdeklarowanej przez ciebie.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
sh3d2
post 10.06.2011, 16:39:25
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 11
Dołączył: 10.06.2011
Skąd: świdnica

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


jesli tych elementow jest wiecej, to chyba przydaloby sie uzyc .each()
Kod
$('.foo').each(function(){
   $(this).css('left', ...)
})


pozdrawiam
Go to the top of the page
+Quote Post
starach
post 10.06.2011, 16:46:35
Post #4





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Taki element jest jeden.
  1. <!-- SLIDESHOW -->
  2. <div id="slideshow">
  3. <a class="prev" title="Poprzednie slajdy"><img src="/sites/all/themes/TheGamer/images/btn-slider-prev.jpg" alt="Poprzednie slajdy" /></a>
  4. <div class="slides">
  5. <ul>
  6. <li><img src="http://www.stockvault.net/data/s/113497.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  7. <li><img src="http://www.stockvault.net/data/s/100177.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  8. <li><img src="http://www.stockvault.net/data/s/101916.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  9. <li><img src="http://www.dreamstime.com/animal-steps-in-snow-thumb12853223.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  10. <li><img src="http://www.dreamstime.com/animal-eggs-thumb15876342.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  11. <li><img src="http://www.dreamstime.com/animal-cat-thumb15385101.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  12. <li><img src="http://www.dreamstime.com/green-nature-thumb596309.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  13. <li><img src="http://www.dreamstime.com/office-in-nature-thumb3256171.jpg" /><div class="title">Lorem ipsum dolor sit</div></li>
  14. <li><img src="http://www.dreamstime.com/nature-tree-thumb16030502.jpg" /></li>
  15. <li><img src="http://www.dreamstime.com/gift-of-the-nature-thumb15977958.jpg" /></li>
  16. <li><img src="http://www.dreamstime.com/nature-abstract-thumb3615419.jpg" /></li>
  17. <li><img src="http://www.dreamstime.com/nature-path-in-forest-with-sunshine-thumb8241130.jpg" /></li>
  18. <li><img src="http://www.dreamstime.com/nature-walk-thumb8436665.jpg" /></li>
  19. <li><img src="http://www.dreamstime.com/save-the-nature-thumb15696583.jpg" /></li>
  20. </ul>
  21. </div>
  22. <a class="next" title="Następne slajdy"><img src="/sites/all/themes/TheGamer/images/btn-slider-next.jpg" alt="Następne slajdy" /></a>
  23. <div class="preloader"><img src="/sites/all/themes/TheGamer/images/Preloader.gif" alt="Preloader" /></div>
  24. </div>
  25. <input type="button" onclick="alert($('#slideshow .slides ul').css('left'))" value="Click" />
  26. <!-- /SLIDESHOW -->
Kiedy kliknę ponownie "next" powinien dodać kolejne 840 do atrybutu left ale ponownie dodaje 1008 ?
Go to the top of the page
+Quote Post
everth
post 10.06.2011, 16:59:58
Post #5





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Cytat
Kiedy kliknę ponownie "next" powinien dodać kolejne 840 do atrybutu left ale ponownie dodaje 1008

Jak wyliczasz zmienną iNewLeft ? Sprawdź co zawiera i jaki wynik daje przemnożenie jej przez -1. Podejrzewam że pobierasz początkową wartość przesunięcia z DOM - ona zwraca 'auto' albo wartość+px, tego się nie da przemnożyć.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
sh3d2
post 10.06.2011, 17:13:15
Post #6





Grupa: Zarejestrowani
Postów: 34
Pomógł: 11
Dołączył: 10.06.2011
Skąd: świdnica

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


Ja rowniez uwazam, ze blad wynika z "dziwnej" wartosci zmiennej iNewLeft (zapewne dodatek w postaci "px")
pobieraj wartosc left za pomoca $('.foo').position().left lub parseInt($('.foo').css('left'))

Go to the top of the page
+Quote Post
#luq
post 12.06.2011, 11:42:02
Post #7





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


@starach skrypt jest Twój tak?
Powiedz mi, masz to zrobione na niewidocznym pasku przewijania, tak? ;>


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
starach
post 14.06.2011, 13:48:33
Post #8





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Tak to taki slideshow, ale znalazłem przyczynę. Okazało się że to była wina Google Chrome. Zapomniałem, że wieki temu włączyłem sobie kanał developerski i najwyraźniej w ostatniej aktualizacji był błąd. Wywalenie GC i zainstalowanie go z kanału stable rozwiązało problem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:53