使用动态变量作为对象文字,jQuery动画功能

Tit*_*tan 4 javascript jquery jquery-ui

原来我有

targetWater.animate({
    "width": "+=100%"
Run Code Online (Sandbox Code Playgroud)

现在我想动态使用"宽度"或"高度"

var direction = (targetWater.hasClass('x'))? "width" : "height";
targetWater.animate({
    direction: "+=100%"
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我试过了

direction.toString()
Run Code Online (Sandbox Code Playgroud)

''+direction+''
Run Code Online (Sandbox Code Playgroud)

对此也不高兴

var anim = { direction: "+=100%" }
targetWater.animate(anim,
Run Code Online (Sandbox Code Playgroud)

Hal*_*yon 8

您的方法不起作用,因为它direction被解释为键,而不是变量.

你可以这样做:

var animation = {};
var direction = targetWater.hasClass('x') ? "width" : "height"
animation[direction] = "+=100%";
targetWater.animate(animation);
Run Code Online (Sandbox Code Playgroud)

方括号使它可以动态地拥有密钥.


如果你想要"direction"方括号表示法的键,你会写:

animation["direction"];
Run Code Online (Sandbox Code Playgroud)

这相当于:

animation.direction;
Run Code Online (Sandbox Code Playgroud)