2009-05-18 97 views
3

在IE7中,此代码不能正常工作:奇怪IE7 jQuery的高度()行为

 myJqObj.css("height", DEFAULT_HEIGHT); 

当它运行时,它似乎myJqObj的高度设置为0;不过,如果我设置后立即查询高度,一切工作正常:

 myJqObj.css("height", DEFAULT_HEIGHT); 
     myJqObj.height(); 

这也适用于:

 myJqObj.css("height", DEFAULT_HEIGHT); 
     myJqObj.width(); 

我敢肯定,如果你对自己的运行上面的代码,事情会工作正常。这一切都发生在一些相当复杂的页面构建过程中。在我的js环境中显然有些东西会导致错误。任何人都看过这样的事情吗?任何想法从哪里开始寻找?

回答

1

我会检查特异性。您是否验证过您的“myJqObj”对象对于IE7足够具体?

当我设置需要FireFox而不是IE7的CSS时,通常是因为我已经为元素设置了CSS,例如<div id="mydiv"><p>元素,并且我的<div id="mydiv"><p class="myclass">高度定义正被第一个定义覆盖。

+0

谢谢BPerrealt。意思是确保myJqObj的高度没有被一个祖先元素超越? – morgancodes 2009-05-18 14:30:06

0

您可能正在寻找一个错误的地方。

您是否将myJqObj设置为在CSS中浮动?如果是这样,因为浮动元素崩溃,高度实际上是0。在IE7

0

同样的问题设定高度通过将其设定后仅查询的高度解决了这一点。

这是一个错误?