0

我目前正在创建一个网站,我需要根据其中一个孩子的偏移量来调整 div 的大小。所以,我这样做:

<script type="text/javascript">

      $(document).ready(function(){ 
        if($(sizer)[0].scrollHeight > 500)
        {
            $(maincnt).height( ($(sizer)[0].scrollHeight + 300) );
        }
      });

</script>

但是,问题是 Firefox 没有触发该事件。但是使用chrome它可以工作。有没有更干净的方法来分配 div 大小?如果没有,有没有办法让它被 Firefox 触发?这是我的 HTML 代码:

<div id="maincnt" >
<div style="position:relative;">
<div id="sizer" style="position:absolute;top:12px;left:10px;width:750px;">
   <!-- Dynamically added things -->
</div>
</div>
</div>

编辑:我放弃了,我找到了解决我的第一个问题的另一种解决方法,而不是 JQuery 问题。

4

2 回答 2

0

这个问题几乎可以肯定是由于您将 DOM 元素视为 JS 预先填充了 ID 作为变量。

尝试$('#sizer')$('#maincnt')代替您当前拥有的那些。

另外,你为什么要使用绝对定位的元素呢?将其设置为: 有什么问题margin: 12px 0px 0px 10px; width: 750px;

于 2012-04-14T15:28:08.880 回答
0

问题可能是当触发 DOMready 事件时,浏览器尚未计算所有宽度和高度。DOMready 事件在页面结构准备好使用时触发,而不是在 css 加载时触发。

尝试在 load 事件上做这种工作,当页面的所有资源被加载时触发,包括 css:

$(window).load(function(){ 
    if($(sizer)[0].scrollHeight > 500) {
        $(maincnt).height( ($(sizer)[0].scrollHeight + 300) );
    }
});
于 2012-04-14T14:59:49.767 回答