2009-08-13 6 views
3

Ich bin mit einem seltsamen Problem mit Firefox konfrontiert, ich habe ein DIV-Tag mit ID = "popup_layer". ich JQuery mit dieser DIV zu finden, die gut funktioniert:Jquery Firefox Fehler beim Auffinden der Position() eines DIV

var rightPosition=$j("#popup_layer") 

Aber wenn ich versuche, die Position des DIV zu finden:

var rightPosition=$j("#popup_layer").position().left; 

ich die folgende Ausnahme in Firebug erhalten:

[Ausnahme ... "JavaScript konnte nicht konvertiert werden arg arg 0 [nsIDOMViewCSS.getComputedStyle]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS-Rahmen :: http://localhost:20094/Scripts/CombineJS.ashx?JSFiles=/Scripts/jquery-1.2.6.min.js;%20%20%20%20/Scripts/PDP/newModalBox.js;%20%20%20%20/Scripts/CookieHelpers.js;%20%20%20%20popupLayer.js;%20%20%20%20/BE/Scripts/scripts.js; :: anonymous :: line 23" data: no]

Antwort

1

Aus irgendeinem Grund, wenn ich den Stil auf meine div entfernen beginnt es

<div id="popup_layer" style="display:none;"> 

Um

<div id="popup_layer"> 

total seltsam zu arbeiten!

+0

Sie können die Dimensionen oder Position eines Displays nicht abrufen: kein DOM-Element. Per Definition sollte das Element nicht auf der Seite gerendert werden, daher benötigt es keinen Platz. – andreialecu

+0

Sie können die Höhe oder Breite eines Elements auch nicht abrufen, wenn das Element mit display ausgeblendet ist: none –

3

Sie können die Dimensionen oder Position eines DOM-Elements nicht mit display:none abrufen. Per Definition sollte das Element nicht auf der Seite gerendert werden, daher benötigt es keinen Platz.

Ich schlage vor, dass Sie Ihr Element zunächst sichtbar lassen, die gewünschten Abmessungen erhalten und dann "display:none" anwenden, nachdem Sie die Messung abgeschlossen haben.

Alternativ können Sie stattdessen "visibility:hidden" verwenden.

Verwandte Themen