我刚刚为此制作了一个快速插件...
它替换了原始的 addClass 函数,因此它存储您添加的每个类,因此当您不想删除它们时,它知道添加了哪些类addClass
这是新的addClass function
jQuery.fn._addClass = jQuery.fn.addClass; // Keep a copy of the addClass function
jQuery.fn.addClass = function( params ) {
var _params = params.split(' '); // Split the classes into array
var classes = this.data('classes') || []; // Get the current dynamic classes
jQuery.each(_params, function( i, c ) {
classes.push(c);
}); // push the classes into the array
this.data('classes', classes); // Re-set all classes
this._addClass(params); // Add the class with the new addClass function
return this;
};
这是删除动态类功能
jQuery.fn.remove_dynamic_classes = function() {
var classes = this.data('classes')
if( !classes ) return this;
this.removeClass( classes.join(' ') );
return this;
};
用法:
$('#test').addClass('one two three');
$('#test').remove_dynamic_classes(); // This will remove classes 'one', 'two', 'three'
这是一个演示
这可能可以改进,但已经晚了,我明天可能会看看。您必须检查元素并使用 addClass 函数来查看它是否有效。
快速复制版
jQuery.fn._addClass=jQuery.fn.addClass;jQuery.fn.addClass=function(e){var t=e.split(" ");var n=this.data("classes")||[];jQuery.each(t,function(e,t){n.push(t)});this.data("classes",n);this._addClass(e);return this};jQuery.fn.remove_dynamic_classes=function(){var e=this.data("classes");if(!e)return this;this.removeClass(e.join(" "));return this}