0

こんにちは、アニメーションが完了した後にイベントのバインドを解除しようとしていますが、そのコンテナでそのイベントを発生させたくありません。私のアプローチ

$('#container').on('mouseover.grow', function(){
    $(this).parents('.secondary').animate({height:'360'},1000);
}).off('mouseover.grow');

しかし、このアプローチは機能していないようです。ここで私が欠けているものについてのポインタは高く評価されます...

4

1 に答える 1

2

.off()行ったようにメソッドをチェーンすると、すぐに実行されます。

completeメソッドのコールバックで呼び出す必要があります.animate()(つまり、アニメーションが完了するまで待ちます)。

$('#container').on('mouseover.grow', function(){
    var $this = $(this); 

    $this.parents('.secondary').animate({height:'360'},1000, function() {
        $this.off('mouseover.grow');
    });
});

var $this = $(this);また、コールバック関数では のスコープthisが異なるため、割り当てていることに注意してください。

于 2013-03-14T22:59:30.447 に答える