我在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


我想念什么?

最佳答案

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

$(cimage).animate( ... )


或通过jQuery而不是getElementById提取

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


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

cimage.offset().top


要么

cimage[0].offsetTop

10-07 22:52