在我问我的问题之前,这是有问题的代码:
var coords = dojo.coords(g);
g.style.left = coords.x + "px";
g.style.top = coords.y + "px";
g.style.position = "absolute";
现在想象这g
是一个相对定位的元素,x
位置为 70,y
位置为 30。如果我注释掉上面代码的最后一行,这就是dojo.coords(g)
给我的。但是,只要我添加最后一行,就会dojo.coords(g)
返回一个x
18 的位置,如果它是绝对定位的,这就是元素所在的位置。在我看来,调用dojo.coords()
不应该受到它下面的代码的影响,但确实如此。
我也看到了同样的问题dojo.require()
,如果我在加载它的函数调用之前直接调用它,我会得到一个给定函数的未定义错误。
我在 Firefox 3 中进行测试,但我也注意到 Safari 3 中的类似问题。有什么想法吗?