Warum sollte jquery-0 zurück für eine offsetHeight, wenn firebug sagt, es ist 34?

Also ich habe ein div, dessen Inhalt zur Laufzeit generiert es zunächst keine Höhe zugeordnet. Wenn es generiert laut firebug und von dem, was ich kann alert mit js die div hat immer noch eine Höhe von 0. Dennoch, mit Blick auf den nur-lese-Eigenschaften mit firebug kann ich sehen, es hat einen offset Höhe von 34. Es ist dieser Wert, den ich brauche. Hoffentlich ist es offensichtlich, aber in Fall ist es nicht, diese Zahl ist variabel, es ist nicht immer 38.

So, ich dachte, dass ich konnte einfach nicht bekommen, dass, indem Sie diese über jquery...

$("#parentDiv").attr('offsetHeight');

oder dieses mit gerade js...

document.getElementById("parentDiv").offsetHeight;

Aber alle, die zurückgegeben wird, ist 0. Hat es was mit der Tatsache zu tun, dass sich offset-Höhe ist eine nur-lese-Eigenschaft in diesem Beispiel? Wie kann ich diese Höhe? Ich meine firebug ist es herauszufinden irgendwie, so scheint es, wie ich sollte in der Lage sein.

Edit:
Hier ist ein Beispiel, was die div aussieht wie jetzt...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN"><META http-equiv="Content-Type" content="text/html; charset=utf-8">

<HTML style="OVERFLOW: hidden; HEIGHT: 100%" xmlns="http://www.w3.org/1999/xhtml"><BODY><FORM id="aspnetForm" name="aspnetForm" action="blah.aspx" method="post"><DIV id="container">

<DIV id="ctl00_BodyContentPlaceHolder_Navigation" style="Z-INDEX: 1; LEFT: 1597px; POSITION: absolute; TOP: 67px">
    <DIV class="TransparentBg" id="TransparentDiv" style="MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; HEIGHT: 94px; TEXT-ALIGN: center">
    </DIV>
    <DIV class="Foreground" id="ForegroundId" style="MARGIN-TOP: 10px; MARGIN-RIGHT: 10px; TEXT-ALIGN: center">
        <DIV id="ctl00_BodyContentPlaceHolder_Navigation1" style="WIDTH: 52px; COLOR: black; HEIGHT: 52px; BACKGROUND-COLOR: transparent; -moz-user-focus: normal">
            <IMG style="FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale src='../images/image.gif'); CURSOR: pointer" height="52" hspace="0" src="..." width="52" /> 
        </DIV>
        <DIV id="ctl00_BodyContentPlaceHolder_UserControl" name="ctl00_BodyContentPlaceHolder_UserControl">
            <IMG style="DISPLAY: block; VERTICAL-ALIGN: bottom; CURSOR: pointer" height="17" src="..." width="16" />
            <IMG style="VERTICAL-ALIGN: top; CURSOR: pointer" height="17" src="..." width="16" />
        </DIV>
    </DIV>
</DIV>

</DIV></FORM></BODY></HTML>

Dieser code wird erzeugt, indem eine Steuerung in einer separaten Bibliothek. So, hier ist der eigentliche code zu erstellen ist es meiner .aspx-Seite.

<blah:blahControl ID="control" runat="server" />

Ok, es ist leicht verändert, aber das ist eine ganze Menge mehr HTML als ich vor hatte. Die div meinte ich als "parentDiv" vor "genannt wird, ctl00_BodyContentPlaceHolder_Usercontrol" dort oben. Das code enthält das div-Element in Frage, es sind Geschwister, Eltern, Großeltern und Kinder. Es ist fast eine direkte Kopie von firebug.

Update:
Ich sollte erwähnt haben dies getan, im IE 7. Es schien zu funktionieren eine Zeit, in Firefox, aber es ist jetzt 0 zurückgeben. Bringt das irgendwelche neuen Erkenntnisse der möglichen Workarounds oder so was?

... Sie alle müssen denken, ich sei verrückt.

Update:
Einige styling...

.TransparentBg 
{
    background-color: white;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
}

.Foreground
{
    position: absolute;
    top: 0px;
}
  • Dies sollte markiert sein, unter dom. Es hat nichts zu tun mit jQuery-wie du selbst angemerkt.
  • Ack. Großbuchstaben FTL!
  • Ich bin mir nicht sicher, wo ich sagte, es hat nichts zu tun mit jQuery. Ich weiß nicht, was mit dem zu tun hat, dass ist mein problem, ich werf die dom-tag dort, wenn Sie mögen. Die Kappen sind generiert, das ist nicht mein tun.
Schreibe einen Kommentar