0

我在读取 div 高度,然后调整另一个大小的脚本时遇到了一些问题。

基本上它只是偶尔做一次。

在我看来,该函数在实际加载所有元素之前获取 div 的高度。

function recalculate_h() {
    if ($(".content_full").is(":visible")){
           var cur = $(".content_full").height()+100;
             animate_height(cur);

       }
}

function smooth_change(way) {
 // rest of the code
    $("#here").load("index.php?siteno="+next+" #there", function(evt) {

        $("#outer").attr("siteno", next);    
            recalculate_h(); 
    });
}

它在 document.ready 中被调用

$(".left_navigator").click(function() {
        smooth_change("back");
});

任何想法我可能做错了什么?

附言

有两种导航站点的方式,通过基本的刷新和 GET 属性,以及使用 ajax 请求更流畅。另外,像这样在每个页面加载时都会调用 recalculate_h,并且运行良好。

$(window).load(function() {

     recalculate_h();
     //$('#map_canvas').gmap();

});

4

2 回答 2

0

我之前在我的一个项目中做过同样的场景,我解决它的方法是抓住你想要调整大小的元素并将它的 css 设置为 height: auto。然后添加其余代码。让我知道它是否有效。

于 2013-02-20T16:53:47.903 回答
0

您可以尝试使用 jquery ajax 调用来加载 index.php?siteno.... 并调用 recalculate_h(); 关于ajax的完整事件?

我看到您错误地设置了这些值:

var middle_banner_height = 100;
var middle_banner_width = 802; 

你应该像这样设置它们:

var middle_banner_height = "100px";
var middle_banner_width = "802px"; 

另外,在此调用中,您设置了 midle_banner_with 而不是 middle_banner_width,因此未定义 midle_banner_with。无论如何,这可能想要解决整个错误,但是您的脚本在这里中断。

于 2013-02-20T14:47:24.270 回答