Avatar billede pnr Nybegynder
02. december 2010 - 11:54 Der er 13 kommentarer og
1 løsning

Mærkeligt problem med jquery $(document).height()

Jeg bruger $(document).height() til at beregne en placering for et element, det virker rigtigt fint i næsten alle tilfælde. jeg genberegner elementes placering ved 2 events (ready og resize). Problemet opstår når man i maksimere IE så retunere $(document).height() en værdie der er 17 px for lille, trykker jeg efterfølgende F5 (refresh) kommer den rigtig højde.
Modsat sker det i FF når jeg minimerer et vindue, så retunere $(document).height() en værdie der er for stor.

Nogen der har en løsning på det problem?

På forhånd mange tak for hjælpen!
Avatar billede kentora Nybegynder
02. december 2010 - 12:03 #1
Prøv at lægge din beregning i en function (her kaldet doResize), og indsæt følgende på din side:

<script type="text/javascript">
window.onresize = doResize;
</script>

Så genberegner den nemlig det hele, når man ændrer på størrelsen :)
Avatar billede pnr Nybegynder
02. december 2010 - 12:15 #2
Hej Kentora

Mange tak for din kommentar!

Det gør desværre ingen forskel om jeg gør det på "din" måde. Jeg har selv gjort følgende:

$(document).ready(function(){
    SetFooter();
});
         
$(window).resize(function(){
    SetFooter();
});
Avatar billede kentora Nybegynder
02. december 2010 - 12:20 #3
Prøv at sætte alert("resize er kaldt") ind i resize funktionen, for at se om den bliver kaldt?
Avatar billede pnr Nybegynder
02. december 2010 - 12:51 #4
Det gør den men den, men i IE er højden ikke korrekt (17px for lille)
Avatar billede -Theisen- Nybegynder
02. december 2010 - 12:56 #5
Umiddelbart lyder som om at du skal have fat i $(window).height(), i stedet for $(document).height ?
Avatar billede pnr Nybegynder
02. december 2010 - 13:37 #6
Hej Theisen

Tak for din kommentar! men det gør desværre ikke nogen forskel.
Avatar billede -Theisen- Nybegynder
02. december 2010 - 13:47 #7
Ok, ...syntes bare at kunne huske at $(document).height var buggy. Har du eventuelt noget mere kode vi kan se?, for umiddelbart virker denne simple test helt ok, både for IE og Firefox:

$(window).resize(function(){
    $('#tmp').text($(window).height());
});
Avatar billede pnr Nybegynder
02. december 2010 - 14:41 #8
Hej igen

Prøv at teste det nedenstående. Du skal først gør dit vindue flytbart (det modsatte af maksimere :-)), og derefter maksimere dit vindue, aflæs værdien og tryk F5:

$(document).ready(function () {
    $('#tmp').text($(window).height() + '_ready');
});

$(window).resize(function () {

    $('#tmp').text($(window).height() + '_Resize');

});
Avatar billede -Theisen- Nybegynder
02. december 2010 - 14:55 #9
Det ser fint ud... :/

http://staticblue.dk/index.html
Avatar billede pnr Nybegynder
02. december 2010 - 15:33 #10
man skal sørge for at køre med den nyeste Jquery, jeg kørte med version 1.4.2, da jeg "opgraderede" til versíon 1.4.4 virkede det :-)

Theisen tak for dit eksempel, det hjalp mig på vej...

smid svar så er der point!
Avatar billede -Theisen- Nybegynder
02. december 2010 - 15:40 #11
Ahh ok. Fedt at du har fået det tilbage på skinner igen =]
Avatar billede bkp Nybegynder
02. december 2010 - 17:24 #12
Jeg linker altid til seneste library ved at linke til denne sti hvor seneste final version ligger:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
Avatar billede pnr Nybegynder
03. december 2010 - 07:53 #13
Hej bkp

Hvis man bruger den er man så altid sikker på at bruge det sidste release?

Kan man være næsten sikker på, at alting altid virker på den nyeste version?
Avatar billede bkp Nybegynder
03. december 2010 - 10:01 #14
Ja sidste stable release i version 1.x.x!

jQuery har indtil nu været bagud kompatibel, og deres versioner har opnået stor performance optimeringer især med tilgang til DOM elementer, så jeg ville ikke være så nervøs.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester