-1
$('a').on('click', function() {
  var link = $(this);

  if (!link.hasClass('animated')) {
    link.addClass('animated');

    // css3 animation

    // callback
    setTimeout(function() {
      link.removeClass('animated');
    }, 600);
    }
  }
});

我使用此代码来防止动画闪烁。它在制作一些动画之前检查动画类的存在。我不使用animate函数,因为它的性能很差。

所以我明白,每次我要求对类做某事时,我都会影响 DOM。

我想知道是否可以在link对象上使用其他属性而不是使用类?喜欢:

link.animated = true;

if (link.animated) {
  // code
}

link.active = true;

以下列方式使用它们是否安全?我可以面对的任何问题(缓存或其他)?

4

2 回答 2

1

尝试使用.data()而不是类

$('a').on('click', function() {
    var link = $(this);

    if (!link.data('animation')) {
        link.data('animation', true);

        // css3 animation

        // callback
        setTimeout(function() {
            link.data('animation', false);
        }, 600);
    }

});
于 2013-08-17T16:39:31.437 回答
1

使用该data()方法存储与元素关联的数据:

var $link = $(this);

//set
$link.data({ foo: 1 });

//get
var foo = $link.data('foo');
于 2013-08-17T16:40:20.300 回答