我在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
我错过了什么?
答案 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');
将返回一个可以动画的动画。