56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
/**
|
|
* 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); |