jQuery对象属性而不是类
我使用此代码来防止动画闪烁。在制作一些动画之前,它会检查动画类是否存在。我不使用动画功能,因为它的性能很差 所以我理解,每次我要求对类做一些事情时,我都会影响DOM 我想知道我是否可以在链接对象上使用其他属性而不是使用类?比如:jQuery对象属性而不是类,jquery,html,css,events,jquery-animate,Jquery,Html,Css,Events,Jquery Animate,我使用此代码来防止动画闪烁。在制作一些动画之前,它会检查动画类是否存在。我不使用动画功能,因为它的性能很差 所以我理解,每次我要求对类做一些事情时,我都会影响DOM 我想知道我是否可以在链接对象上使用其他属性而不是使用类?比如: $('a').on('click', function() { var link = $(this); if (!link.hasClass('animated')) { link.addClass('animated'); // css3
$('a').on('click', function() {
var link = $(this);
if (!link.hasClass('animated')) {
link.addClass('animated');
// css3 animation
// callback
setTimeout(function() {
link.removeClass('animated');
}, 600);
}
}
});
按以下方式使用是否安全?我在缓存或其他方面会遇到什么问题 尝试使用.data而不是class
link.animated = true;
if (link.animated) {
// code
}
link.active = true;
使用以下方法存储与元素关联的数据:
$('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);
}
});
我认为数据函数也会影响DOM@Steve没有jQuery使用内部数据结构来存储数据,它不会将数据存储在DOM中,但是如果我将$this和$data选中,它将给出正确的结果。在函数外部或我将调用$.data的任何地方进行检查也会得到相同的结果。因此,jQuery似乎总是在.data上添加数据属性。您认为如何将属性直接存储在$this对象中?like link=$this;link.someproperty='value'?数据不是正确的选择,因为类具有更好的性能数据函数DOM@Steve不,它保存在jQery的$.cache中。元素只是数据的引用键。
var $link = $(this);
//set
$link.data({ foo: 1 });
//get
var foo = $link.data('foo');