1

我在 a 中有一个图像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

4 回答 4

4

getElementById不是 jQuery 函数,也不会产生 jQuery 对象。animate仅在 jQuery 对象上可用。您需要包装您的cimage

$(cimage).animate( ... )

或通过 jQuery 而不是getElementById

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

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

cimage.offset().top

或者

cimage[0].offsetTop
于 2012-09-07T12:59:56.317 回答
2

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

代替

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

采用

 var cimage = $('#sslot_img' + key1);
于 2012-09-07T13:00:23.543 回答
1

尝试

cimage = $('#sslot_img' + key1);
于 2012-09-07T13:01:06.810 回答
0
cimage = document.getElementById('sslot_img' + key1);

不是 jQuery 对象。

$('#sslot_img' + key1');

将返回一个您可以设置动画的。

于 2012-09-07T13:00:44.117 回答