3

我正在尝试将方向变量传递给 jquery animate 并且动画不起作用。

HTML

<div class="box">Box</div>

JS

var direction = 'left';
$('.box').animate({direction : '100'},500);

小提琴

4

3 回答 3

4

您需要创建一个对象来传递,该对象封装了您需要的所有动画选项,并且您可以使用变量作为名称添加到它们...

http://jsfiddle.net/FyrXH/

var direction = 'left';
var options = {};
options[direction] = 100;
$('.box').animate(options, 500);
于 2013-10-14T10:44:14.640 回答
1

您不能以这种方式将变量用作对象的属性,您可以使用括号表示法来设置属性,然后将对象传递给函数:

var o = {};
o[direction] = 100;
$('.box').animate(o, 500);

http://jsfiddle.net/QmmSu/

于 2013-10-14T10:43:51.770 回答
0

direction第二行是属性名称本身,它不会被同名的变量替换。

您可以做的是将整个对象作为变量传递:

var direction = {left : '100'};
$('.box').animate(direction,500);

http://jsfiddle.net/FyrXH/

于 2013-10-14T10:49:48.493 回答