本帖最后由 chinaskysun 于 2013-03-23 23:30:01 编辑

解决方案 »

  1.   

        $(document).ready(function(){
            var i=0;//标记打开的编号
            $(".content").each(function(){
                $(this).attr("h",$(this).height());//重点:先存一下原高
            });
            $("#container h1").each(function(x){
                $(this).click(function(){
                    if(i!=x){
                        $(".content").eq(x).animate({height:$(".content").eq(x).attr("h")},500);
                        $(".content").eq(i).animate({height:0},500);
                        i=x;
                    }
                })
            });
            $(".content:gt(0)").animate({height:0},500);
        })
      

  2.   

    ie下获取的高度都是0,怎么办?
    我用的是ie8
      

  3.   

    我的也是ie8,可以正常读取高度。你确定有把代码写到$(document).ready(function(){})里吗?高度是必须加载完并渲染完才能正常读取。
      

  4.   

    建议用这个方法:<script type="text/javascript">
        $(document).ready(function(){
            var i=0;//标记打开的编号
            $("#container h1").each(function(x){
                $(this).click(function(){
                    if(i!=x){
                        $(".content").eq(x).slideDown("slow");
                        $(".content").eq(i).slideUp("slow");
                        i=x;
                    }
                })
            });
            $(".content:gt(0)").slideUp("slow");
        })
    </script>