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); |