mirror of
				https://github.com/flynx/PortableMag.git
				synced 2025-10-30 19:40:12 +00:00 
			
		
		
		
	createCSSClassToggler result now accepts an optional alternative target argument...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									e62a2e710f
								
							
						
					
					
						commit
						84bd298e32
					
				
							
								
								
									
										40
									
								
								lib/jli.js
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								lib/jli.js
									
									
									
									
									
								
							| @ -20,20 +20,33 @@ | |||||||
| //
 | //
 | ||||||
| // Elem is a jquery compatible object; default use-case: a css selector.
 | // Elem is a jquery compatible object; default use-case: a css selector.
 | ||||||
| //
 | //
 | ||||||
| // If class_list is a string, the resulting function understands the 
 | // This will return a function with the folowing signature:
 | ||||||
| // folowing arguments:
 | //
 | ||||||
|  | // 	func() -> <state>
 | ||||||
|  | // 	func(<action>) -> <state>
 | ||||||
|  | // 	func(<target>, <action>) -> <state>
 | ||||||
|  | //
 | ||||||
|  | //
 | ||||||
|  | // In the first form this just toggles the state.
 | ||||||
|  | //
 | ||||||
|  | // In forms 2 and 3, if class_list is a string, the <action> can be :
 | ||||||
| // 	- <index>		: 0 for 'off' and 1 for 'on' (see below)
 | // 	- <index>		: 0 for 'off' and 1 for 'on' (see below)
 | ||||||
| // 	- 'on'			: switch mode on -- add class
 | // 	- 'on'			: switch mode on -- add class
 | ||||||
| // 	- 'off'			: switch mode off -- remove class
 | // 	- 'off'			: switch mode off -- remove class
 | ||||||
| // 	- '?'			: return current state ('on'|'off')
 | // 	- '?'			: return current state ('on'|'off')
 | ||||||
| // 	- no arguments	: toggle the state
 |  | ||||||
| //
 | //
 | ||||||
| // Otherwise, if class_list is a list of strings:
 | // In forms 2 and 3, if class_list is a list of strings, the <action> can be:
 | ||||||
| //  - <index>		: explicitly set the state to index in class_list
 | //  - <index>		: explicitly set the state to index in class_list
 | ||||||
| //  - <class-name>	: explicitly set a class from the list
 | //  - <class-name>	: explicitly set a class from the list
 | ||||||
| // 	- '?'			: return current state ('on'|'off')
 | // 	- '?'			: return current state ('on'|'off')
 | ||||||
| // 	- no arguments	: set next state in cycle
 | // 
 | ||||||
|  | // In the third form the <target> is a jquery-compatible object.
 | ||||||
| //
 | //
 | ||||||
|  | // In all forms this will return the current state string or null if the
 | ||||||
|  | // action argument given is invalid.
 | ||||||
|  | //
 | ||||||
|  | // NOTE: if it is needed to apply this to and explicit target but with 
 | ||||||
|  | // 		no action explicit action, just pass null as the second argument.
 | ||||||
| // NOTE: a special class name 'none' means no class is set, if it is present 
 | // NOTE: a special class name 'none' means no class is set, if it is present 
 | ||||||
| // 		in the class_list then that state will be with all other state 
 | // 		in the class_list then that state will be with all other state 
 | ||||||
| // 		classes removed.
 | // 		classes removed.
 | ||||||
| @ -82,8 +95,15 @@ function createCSSClassToggler(elem, class_list, callback_a, callback_b){ | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// XXX make this generic...
 | 	// XXX make this generic...
 | ||||||
| 	var func = function(action){ | 	var func = function(a, b){ | ||||||
| 		elem = $(elem) | 		if(b == null){ | ||||||
|  | 			var action = a | ||||||
|  | 			var e = elem | ||||||
|  | 		} else { | ||||||
|  | 			var e = a | ||||||
|  | 			var action = b | ||||||
|  | 		} | ||||||
|  | 		e = $(e) | ||||||
| 		// option number...
 | 		// option number...
 | ||||||
| 		if(typeof(action) == typeof(1)){ | 		if(typeof(action) == typeof(1)){ | ||||||
| 			// range check...
 | 			// range check...
 | ||||||
| @ -101,7 +121,7 @@ function createCSSClassToggler(elem, class_list, callback_a, callback_b){ | |||||||
| 			// get current state...
 | 			// get current state...
 | ||||||
| 			var cur = 'none' | 			var cur = 'none' | ||||||
| 			for(var i=0; i < class_list.length; i++){ | 			for(var i=0; i < class_list.length; i++){ | ||||||
| 				if(elem.hasClass(class_list[i])){ | 				if(e.hasClass(class_list[i])){ | ||||||
| 					cur = class_list[i] | 					cur = class_list[i] | ||||||
| 					break | 					break | ||||||
| 				} | 				} | ||||||
| @ -139,9 +159,9 @@ function createCSSClassToggler(elem, class_list, callback_a, callback_b){ | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		// update the element...
 | 		// update the element...
 | ||||||
| 		elem.removeClass(class_list.join(' ')) | 		e.removeClass(class_list.join(' ')) | ||||||
| 		if(cls != 'none' && action != 'off'){ | 		if(cls != 'none' && action != 'off'){ | ||||||
| 			elem.addClass(cls) | 			e.addClass(cls) | ||||||
| 		} | 		} | ||||||
| 		// post callback...
 | 		// post callback...
 | ||||||
| 		if(callback_post != null){ | 		if(callback_post != null){ | ||||||
|  | |||||||
| @ -6,7 +6,9 @@ | |||||||
| <link rel="stylesheet" href="magazine-custom.css"> | <link rel="stylesheet" href="magazine-custom.css"> | ||||||
| 
 | 
 | ||||||
| <style> | <style> | ||||||
| 
 | body { | ||||||
|  | 	background: silver; | ||||||
|  | } | ||||||
| .container { | .container { | ||||||
| 	position: relative; | 	position: relative; | ||||||
| 	border: solid 1px silver; | 	border: solid 1px silver; | ||||||
| @ -14,7 +16,7 @@ | |||||||
| 	min-height: 300px; | 	min-height: 300px; | ||||||
| 	margin: 25px; | 	margin: 25px; | ||||||
| 	background: white; | 	background: white; | ||||||
| 	box-shadow: 5px 5px 200px 0px silver; | 	/*box-shadow: 5px 5px 200px 0px silver;*/ | ||||||
| 	padding: 10px; | 	padding: 10px; | ||||||
| } | } | ||||||
| .container .preview { | .container .preview { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user