0

次のアニメーションを追跡して、すでに適用されているかどうかを確認するにはどうすればよいですか?通常、オンのときに変数を1またはtrueに設定するだけですが、このアニメーションはクラスに基づいて複数の要素に適用されます。

function animateDiv(what) {  
    $(what).animate({ backgroundPosition:"0px -250px"
    },8000).css('background-position','0px -250px');

    $(what).animate({
        backgroundPosition:"0px 0px"
    },8000).css('background-position','0px 0px'); 
} 


$(document).on( 'hover', '.animation-div', function(){ animateDiv(this); } );
4

2 に答える 2

3

1つの可能性はこれです:

$(document).on('hover', '.animation-div', function() {
    if (!$(this).hasData('done')) {
        $(this).data('done');
        animateDiv(this);
    }
});
于 2013-02-02T08:43:42.690 に答える
0

これが質問に答えるかどうかはわかりませんが、これのいくつかは役立つかもしれません...

function addAnotherClass($self) {
  $self.toggleClass('another_class_for_reference');
}

$('.animation-div').hover(
  function() {
    var $self = $(this);

    $self.animate({"left": "+=50px"}, "slow");
    $self.addClass('active');
    addAnotherClass($self);
  },
  function() {
    var $self = $(this);

    $self.animate({"left": "-=50px"}, "slow");
    $self.removeClass('active');
    addAnotherClass($self);
  }
);

http://jsfiddle.net/ndreckshage/RBhAZ/

于 2013-02-02T09:14:43.747 に答える