1

我发现这个片段给了我一个对象的最大高度,它在除了 ie8 之外的所有东西上都很好用。有什么我可以改变的东西可以让它正常工作吗?

    function thisHeight(){
        return $(this).height();
    }

    $("#new-deals ul.centerSpace").height(function() {
        var dealNameHeight = Math.max.apply(Math, $(this).find(".deal-name").map(thisHeight));      
        $(".deal-name").css({height: dealNameHeight});
    });
4

2 回答 2

0

看到这个:如果它回答你,删除这个问题并且不接受这个答案有答案。(所有归功于标记重复的Blazermonger

IE8 对象不支持此属性或方法 (Math.max.apply)

于 2013-10-03T21:10:32.747 回答
0

IE8 不支持map();作为后备,您可以使用下划线来提供map()它的实现,浏览器不支持它并允许您传递上下文。

这让我介绍了第二个问题:您可能对必须传递的上下文有问题thisHeight

var arr = _.map($(this).find(".deal-name"), function(el) { 
   return thisHeight.call(el); //note that el and this are not identical
}, this);
Math.max.apply(Math, arr); //if you use underscore

如果上下文没有传递过来thisHeightthis很可能会引用全局对象,也就是window.

于 2013-10-03T21:11:33.073 回答