2012-05-14 5 views
15

Próbuję użyć jQuery, aby ustawić wysokość kilku div dla wszystkich, którzy mają taką samą wysokość jak najwyższy div. Zasadniczo przechodzę przez divy i otrzymuję wysokość od każdego z nich, przechowując największą w zmiennej. Następnie ponownie przejrzę wszystkie z nich i ustawię ich wysokość na zmienną.jQuery height() zwraca fałszywe wartości

Jednak jQuery podaje błędną wartość wysokości. Na przykład funkcja height() dla pierwszego div zwraca 633, ale kiedy patrzę na to w inspektorze, mówi, że jest 603. Nie mam absolutnie żadnego pojęcia, dlaczego to robi. Wydaje się, że zawiera on dopełnienie i marginesy, ale dokumentacja mówi, że nie powinno tak być.

Wysokość div jest ustawiona jako auto w moim arkuszu stylów. Jeśli podaję im stałą wysokość piksela, wówczas funkcja height() jQuery zwraca poprawną wartość, ale nie wtedy, gdy są one włączone (tak jak muszą być).

Strona, o której mowa, to ictsf.org. Zwróć uwagę na dodatkową przestrzeń u dołu trzech kolumn.

+2

Właśnie potwierdziłem, że ten problem NIE występuje w Firefoksie. Dzieje się to w Chrome i Safari. Nie testowałem tego z IE, ponieważ IE jest do bani. – TGPrankster

+0

Taki dobry powód, aby nie testować go za pomocą IE. –

Odpowiedz

32

Problem jest związany z „wyrównać wysokość kolumnie” kod uruchomiony na $(document).ready(), co dzieje się przed WebKit jest świadomy wysokości obrazów.

Najszybszą poprawką jest zamiast tego uruchomienie kodu na $(window).load(). Lub, jeszcze lepiej, użyj imagesLoaded plugin.

Alternatywnie, ustawienie atrybutu height na img może rozwiązać problem.

+0

TY, proszę pana, są geniuszem! Dziękuję Ci bardzo. – TGPrankster

+0

już walczę 1 godzinę, ale uratowałeś mnie od więcej ... dzięki! – vaskort