JS例外:animate不是一个函数

时间:2012-09-07 12:58:31

标签: javascript jquery jquery-animate

我在div内有一个图片,以及以下Javascript代码:

function animate_down(key1, key2) 
{
   cimage = document.getElementById('sslot_img' + key1);
   var topval = cimage.offsetTop;
   if (topval == -416) {
        cimage.animate({ top: '0px' }, 5000);
   }
   else {
        topval = topval - 32;
        var toptxt = { 'top': topval.toString() };
        cimage.animate(toptxt, 5000);
    }
}

我在Firebug中测试它,当调试器到达它正在抛出的.animate函数时:

cimage.animate is not a function 

我错过了什么?

4 个答案:

答案 0 :(得分:4)

getElementById不是jQuery函数,也不会产生jQuery对象。 animate仅适用于jQuery对象。您需要打包cimage

$(cimage).animate( ... )

或通过jQuery而不是getElementById

获取它
var cimage = $('#sslog_img' + key1);

请注意,如果您使用后一个选项,cimage将没有offsetTop属性,而是您必须使用

cimage.offset().top

cimage[0].offsetTop

答案 1 :(得分:2)

.animate()是一个jquery函数,你需要在jquery对象上使用它。

而不是

 cimage = document.getElementById('sslot_img' + key1);

使用

 var cimage = $('#sslot_img' + key1);

答案 2 :(得分:1)

尝试

cimage = $('#sslot_img' + key1);

答案 3 :(得分:0)

cimage = document.getElementById('sslot_img' + key1);

不是jQuery对象。

$('#sslot_img' + key1');

将返回一个可以动画的动画。