为什么这个JS不在ie8中工作?

时间:2013-10-03 21:01:58

标签: javascript jquery internet-explorer-8 css

我发现这个片段给了我一个物体的最大高度,除了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});
    });

2 个答案:

答案 0 :(得分:0)

See this:如果它回答了您,请删除此问题并且不接受此答案有答案。 (所有归功于Blazermonger信誉重复的信用)

IE8 Object doesn't support this property or method (Math.max.apply)

答案 1 :(得分: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

如果上下文未通过thisHeight传递,this可能会引用全局对象,即window