1

我编写了一个函数,该函数应该在页面首次加载以及用户调整窗口大小时触发。页面加载时它工作正常,但当用户调整窗口大小时它不起作用。奇怪的是,如果我在函数中放置一个警报,当窗口调整大小时会显示该警报,但函数的其余部分不会触发。我在 Chrome 的控制台中没有看到任何错误。我尝试将其更改为$(document).resize(), $("body").resize(), and $(".pricingHeader").resize(),但没有任何效果。这对我来说毫无意义。

function getTallest() {
    var tallest = 0;
    $(".pricingHeader").not(".features .pricingHeader").each(function(){
       tallest = $(this).height() > tallest?$(this).height():tallest;
    });
    $(".pricingHeader").not(".features .pricingHeader").height(tallest);
    $(".features .pricingHeader").height(tallest + 8);
}
$(document).ready(function() {
    getTallest();
});
$(window).resize(function() {
    getTallest();
});
4

2 回答 2

3

尝试 :

function getTallest() {
    var tallest = 0;
    $(".pricingHeader").not(".features .pricingHeader").each(function(i, elem){
       if ( $(elem).height() > tallest ) tallest = $(elem).height();
    });
    $(".pricingHeader").height(function() {
        var add = $(this).closest('.features').length ? 8 : 0;
        return tallest+add;
    });
}

$(function() {
    $(window).on('resize', getTallest).trigger('resize');
});
于 2013-07-12T16:16:11.893 回答
0

好吧,我知道问题出在哪里了。我将每个的高度设置为.pricingHeader固定高度,这阻止了最高者在调整窗口大小时调整大小。这是固定的脚本:

function getTallest() {
    var tallest = 0;
    $(".pricingHeader").not(".features .pricingHeader").each(function(){
        $(this).css({height:"auto"});
        tallest = $(this).height() > tallest?$(this).height():tallest;
    });
    $(".pricingHeader").each(function() {
        $(".pricingHeader").not(".features .pricingHeader").height(tallest);
        $(".features .pricingHeader").height(tallest + 8);
    });
}
$(document).ready(function() {
    getTallest();
});
$(window).resize(function() {
    getTallest();
});
于 2013-07-12T17:34:26.290 回答