/** * jquery.dependClass - Attach class based on first class in list of current element * * Written by * Egor Khmelev (hmelyoff@gmail.com) * * Licensed under the MIT (MIT-LICENSE.txt). * * @author Egor Khmelev * @version 0.1.0-BETA ($Id$) * **/ (function($) { $.baseClass = function(obj){ obj = $(obj); return obj.get(0).className.match(/([^ ]+)/)[1]; }; $.fn.addDependClass = function(className, delimiter){ var options = { delimiter: delimiter ? delimiter : '-' } return this.each(function(){ var baseClass = $.baseClass(this); if(baseClass) $(this).addClass(baseClass + options.delimiter + className); }); }; $.fn.removeDependClass = function(className, delimiter){ var options = { delimiter: delimiter ? delimiter : '-' } return this.each(function(){ var baseClass = $.baseClass(this); if(baseClass) $(this).removeClass(baseClass + options.delimiter + className); }); }; $.fn.toggleDependClass = function(className, delimiter){ var options = { delimiter: delimiter ? delimiter : '-' } return this.each(function(){ var baseClass = $.baseClass(this); if(baseClass) if($(this).is("." + baseClass + options.delimiter + className)) $(this).removeClass(baseClass + options.delimiter + className); else $(this).addClass(baseClass + options.delimiter + className); }); }; })(jQuery);