2009-08-13 49 views
3

我面对一个奇怪的问题与火狐,我有一个ID =“popup_layer”DIV标记。 我使用jQuery找到这个DIV的正常工作:查找位置()DIV的Jquery Firefox错误

var rightPosition=$j("#popup_layer") 

但是,当我试图找到DIV的位置:

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

我得到下面的异常萤火虫:

[异常...]“无法转换JavaScript参数arg 0 [nsIDOMViewCSS.getComputedStyle]”nsresult:“0x80570009(NS_ERROR_XPC_BAD_CONVERT_JS)”位置:“JS frame :: 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]

回答

1

出于某种原因,当我删除我的DIV的风格,它开始工作

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

<div id="popup_layer"> 

完全不可思议!

+0

无法检索显示的尺寸或位置:无DOM元素。根据定义,该元素不应该在页面上呈现,因此不会占用空间。 – andreialecu 2009-08-13 20:39:01

+0

另外,当元素隐藏显示时,您无法检索元素的高度或宽度:无 – 2009-08-13 20:52:23

3

无法使用display:none检索DOM元素的尺寸或位置。根据定义,该元素不应该在页面上呈现,因此不会占用空间。

我建议最初让您的元素可见,获得您想要的尺寸,然后在完成测量后应用“display:none”。

或者,您可以使用“visibility:hidden”来代替。