事件发生后,使用Jquery均衡高度

时间:2011-01-26 00:40:18

标签: jquery height equals

我正在开发一个解析RSS提要并在一系列div中显示它们的网站。在所有feed加载之后,我想运行一个jquery函数,它基本上取最高div的高度并将所有div设置为等于该高度。您可以在此处查看该网站:http://vitaminjdesign.com/adrian/

目前,我使用下面列出的jquery equal heights plugin

function equalHeight(group) {
    var tallest = 0;
    group.each(function() {
        var thisHeight = $(this).height();
        if(thisHeight > tallest) {
            tallest = thisHeight;
        }
    });
    group.height(tallest);
}

你可以用:

来调用它
$(document).ready(function() {
$(".block").equalHeights(); 
});

这不能正常工作(它将所有div的高度设置为等于最高div 之前 rss Feed加载的高度),这很可能是因为我需要使用实时事件处理程序?任何人都知道如何在完成所有内容加载后将高度设置为相等?

1 个答案:

答案 0 :(得分:4)

当AJAX完成时,您需要调用equalHeight。您有两种选择:(a)在加载每个项目后进行呼叫;或(b)在加载所有项目后进行一次呼叫。 equalHeight看起来不会占用大量资源,因此您每次都可以拨打电话。

所以只需将equalHeight($(".block"));添加到每个AJAX调用的success回调中。

$.ajax({
    url: 'someurl.rss',
    success: function(){
        // your code to insert the relevant content

        equalHeight($(".block")); // insert this at the end of each call to the RSS files
    }
});

或者,稍微强一点,但在代码方面更简单,就是在每次调用AJAX之后使用ajaxSuccess来运行一个函数:

$(document).ajaxSuccess(function(){
    equalHeight($(".block"));
});