`var`在css中不能在IE中工作

时间:2016-08-06 08:27:30

标签: javascript jquery html css arrays

我有两个水平和垂直对齐变量,如xPosyPos,它会在css中将值指定为0,如下所示:

var xPos="left",
    yPos="bottom";

$(".applyCss").css({
    "width":"200px",
    "height":"200px",
    "position":"absolute",
    "background-color":"#E0E0E0",
    [xPos]:0,
    [yPos]:0
});   

除IE之外,此逻辑工作正常。它显示

Expected identifier, string or number

我在StackOverflow中提到了很多问题,我得到的答案是“Internet Explorer在对象和数组中使用尾随逗号有麻烦”。但我没有得到任何解决这个问题的方法

以下是jsFiddle

(注意:我解决了这个问题,但我想知道这个方法的解决方案)

1 个答案:

答案 0 :(得分:1)

该对象文字括号语法是ES6的新功能(也称为ES2015)。它可以在Firefox,Chrome和Edge等现代浏览器中运行,但IE几乎无法达到ES5标准。

使用Babel获取浏览器兼容性,或使用旧的可信任语法:

var xPos="left",
    yPos="bottom";

var myStyles = {
    "width":"200px",
    "height":"200px",
    "position":"absolute",
    "background-color":"#E0E0E0",
};
myStyles[xPos] = 0;
myStyles[yPos] = 0;
$(".applyCss").css(myStyles);
相关问题