-
Notifications
You must be signed in to change notification settings - Fork 1
/
jquery.dependClass-0.1.js
56 lines (51 loc) · 1.38 KB
/
jquery.dependClass-0.1.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
* jquery.dependClass - Attach class based on first class in list of current element
*
* Written by
* Egor Khmelev ([email protected])
*
* 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);