jQuery对象属性而不是类

时间:2013-08-17 16:37:26

标签: jquery html css events jquery-animate

$('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;

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

2 个答案:

答案 0 :(得分: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);
    }

});

答案 1 :(得分:1)

使用data()方法将关联数据与元素存储在一起:

var $link = $(this);

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

//get
var foo = $link.data('foo');