1

内に画像が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);
    }
}

.animateデバッガーがスローする機能に到達すると、Firebugでテストしました:

cimage.animate is not a function 

私は何が欠けていますか?

4

4 に答える 4

4

getElementByIdは jQuery 関数ではなく、jQuery オブジェクトを生成しません。animatejQuery オブジェクトでのみ使用できます。次のいずれかをラップする必要があります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 に答える