让.animate()和.data()一起工作

时间:2012-12-13 15:09:43

标签: javascript jquery

我试图让以下代码起作用:

有这个奇怪的问题,当我使用elem.data获取值时,第二个.animate不起作用,而当我使用提及"left" : "200px"这样的值时它似乎有效。

我已经在下面提到的代码之前使用elem.data('prevLeft')检查了elem.data('prevTop')console.log()是否存在,并且这些值存在并且是正确的。

elem.animate({"width":"200px"},3000).animate({
    "left": elem.data('prevLeft'),
    "top": elem.data('prevTop')
 },2000);

似乎是什么问题,我是否无法将存储在变量中的值传递给.animate()函数?


Stray函数正在重置值,而 是它无法正常工作的原因。 我重试了所有提到的方法,并且所有方法都有效。

很抱歉所有的麻烦。

2 个答案:

答案 0 :(得分:1)

编辑,试试这个:

var prevLeft = elem.data('prevLeft'),
var prevTop = elem.data('prevTop');

elem.animate({'width':'200px'},3000).animate({'top':prevTop,'left':prevLeft},2000);

虽然如果svenhesse的答案不起作用,我不确定会这样。

答案 1 :(得分:1)

试试这个:

var conf = {
    left: elem.data('left'), 
    right: elem.data('right')
};

elem.animate(conf, 200);