日期:2014-05-17  浏览次数:20548 次

动态绑定div的offsetHeight取值问题
div的内容是用Repeater绑定数据的
div的offsetHeight就一直是0
请问下怎么解决?
用了window.onload = load;也没用。。还是0

C# code

<div class="div_peisong_main">
            <div class="div_peisong_main1">
                <asp:Repeater ID="rep_ps" runat="server">
                    <ItemTemplate>
                        <dl>
                            <dt><a href="#"><img src='<%# "Images/ProPic/"+Eval("ProImg") %>' /></a></dt>
                            <dd><a href="#"><%# Eval("PTitle").ToString().Length > 9 ? Eval("PTitle").ToString().Substring(0, 9) : Eval("PTitle")%></a></dd>
                        </dl>
                    </ItemTemplate>
                </asp:Repeater>
            </div>
            <div class="div_peisong_main2">
            </div>
        </div>


JScript code

$(function () {
    function load() {
        var dome = $(".div_peisong_main");
        var dome1 = $(".div_peisong_main1");
        var dome2 = $(".div_peisong_main2");
        var speed = 1000; //设置向上滚动速度
        dome2.html(dome1.html());

        function moveTop() {
            alert(dome1.get(0).offsetHeight);
            if (dome2.offset().top - dome.get(0).scrollTop <= 0) {
                dome.get(0).scrollTop -= dome1.get(0).offsetHeight;
            } else {
                dome.get(0).scrollTop++;
            }
        }
        var mymar = setInterval(moveTop, speed);

        //鼠标悬浮停止滚动,鼠标离开继续滚动
        dome.hover(function () {
            clearInterval(mymar);
        }, function () {
            mymar = setInterval(moveTop, speed);
        });
    }

    window.onload = load;

});



------解决方案--------------------
setTimeout 延迟一些执行 load 看看。