Changeset 1187993
- Timestamp:
- 06/26/2015 08:13:36 AM (11 years ago)
- Location:
- militant-moderates-css-parent-selector-mmps
- Files:
-
- 8 added
- 5 edited
-
. (modified) (1 prop)
-
tags/1.1.2 (added)
-
tags/1.1.2/css (added)
-
tags/1.1.2/css/mmParentSelector.css (added)
-
tags/1.1.2/js (added)
-
tags/1.1.2/js/mmParentSelector.js (added)
-
tags/1.1.2/js/mmParentSelector.min.js (added)
-
tags/1.1.2/mmParentSelector.php (added)
-
tags/1.1.2/readme.txt (added)
-
trunk/js/mmParentSelector.js (modified) (11 diffs)
-
trunk/js/mmParentSelector.min.js (modified) (1 diff)
-
trunk/mmParentSelector.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
militant-moderates-css-parent-selector-mmps
-
Property
svn:global-ignores
set to
mmParentSelector.dev.js
-
Property
svn:global-ignores
set to
-
militant-moderates-css-parent-selector-mmps/trunk/js/mmParentSelector.js
r1187616 r1187993 29 29 jQuery(document).ready(function( $ ) { 30 30 31 var k = 0, i, j,31 var evidx = 0, k = 0, i, j, 32 32 33 33 // Class that's added to every styled element 34 CLASS = ' MMPS',34 CLASS = 'mmPpSsPrEfIx', 35 35 36 36 eventMap = { 37 // active: 'mousedown mouseup', 38 changed: 'change', 39 checked: 'click', 40 // click: 'click', 41 focus: 'focus blur', 42 hover: 'mouseover mouseout', 43 // mousedown: 'mousedown', 44 // mouseout: 'mouseout', 45 // mouseover: 'mouseover', 46 // mouseup: 'mouseup', 47 selected: 'change', 37 active: 'focusin', 38 focus: 'focusin', 39 hover: 'mouseenter', 48 40 }, 49 41 50 42 pairedEventMap = { 51 mousedown: 'mouseup mouseout '52 },53 54 singleEventMap = {55 mouse up: 'mouseout'43 mousedown: 'mouseup mouseout mouseleave', 44 focusin: 'focusout', 45 keydown: 'keyup', 46 mouseenter: 'mouseleave', 47 mouseover: 'mouseleave', 56 48 }, 57 49 58 50 stateMap = { 59 51 active: ':active', 60 // checked: ':checked',61 52 disabled: ':disabled', 62 53 empty: ':empty', … … 64 55 first_child: ':first-child', 65 56 first_of_type: ':first-of-type', 66 // focus: ':focus',67 // hover: ':hover',68 57 in_range: ':in-range', 69 58 invalid: ':invalid', 59 lang: ':lang', 70 60 last_child: ':last-child', 71 61 last_of_type: ':last-of-type', 72 62 link: ':link', 63 not: ':not', 64 nth_child: ':nth-child', 65 nth_last_child: ':nth-last-child', 66 nth_last_of_type: ':nth-last-of-type', 67 nth_of_type: ':nth-of-type', 73 68 only_of_type: ':only-of-type', 74 69 only_child: ':only-child', … … 83 78 }, 84 79 85 stateParamMap = {86 lang: ':lang(#)', // **SPECIAL87 not: ':not(#)', // **SPECIAL88 nth_child: ':nth-child(#)', // **SPECIAL89 nth_last_child: ':nth-last-child(#)', // **SPECIAL90 nth_last_of_type: ':nth-last-of-type(#)', // **SPECIAL91 nth_of_type: ':nth-of-type(#)' // **SPECIAL92 },93 94 80 pseudoElements = { 95 81 after: '::after', … … 169 155 // Build Child Selector - Same as Selector but without '!' 170 156 childSelector = selector.replace(/!/g, '').replace('::', ':'); 171 // Remove ALL Parent Pseudo Classes and Pseudo Elements from Child Selector157 // Remove ALL Parent Pseudo Classes and Pseudo Elements 172 158 $(pseudoParents).each(function(x) { 173 159 childSelector = childSelector.replace( ':' + this, '' ); … … 185 171 if (childElements.length > 1) { 186 172 var qDOM; 187 173 188 174 do { 189 175 qDOM = false; // clear our flag … … 194 180 catch(err) { 195 181 var ep = ':' + $.trim(err.toString().match( /[\w\-]+$/i )); 196 var epp = childSelector.lastIndexOf( ep ); 197 if ( epp >= 0 ) { 198 childSelector = childSelector.replace( ep, '' ); 182 if ( childSelector.lastIndexOf( ep ) >= 0 ) { 183 childSelector = childSelector.replace(new RegExp( ep, 'g' ), '' ); 199 184 qDOM = true; 200 185 } … … 231 216 subject = subject.prev(); 232 217 } 233 if ( subject ) {234 } else {235 }236 218 break; 237 219 default: … … 240 222 } 241 223 242 if (subject) {243 }244 224 } while (subject && n != parent && (n = $.trim(tmpNodes.pop()))); 225 245 226 246 227 // If we successfully walked up the DOM tree and found the right parent... 247 228 if (subject) { 248 229 var id = CLASS + k++, 249 ptNormState, 230 231 mmpsAddNamespace = function(eType) { 232 return eType.split(/[ ]+/).join('.e' + id + ' ') + '.e' + id; 233 }, 234 250 235 toggleFn = function(e) { 236 var eid = 'E#' + evidx++; 251 237 if (e) { 252 // if we have an attach type event then build a reverse handler 253 if (pairedEventMap[e.type]) { 254 e.data.subject.on(pairedEventMap[e.type], function(oe) { 255 e.data.subject.toggleClass(e.data.id); 256 e.data.subject.off(pairedEventMap[e.type]); 238 // if this is a paired event then build a reverse handler 239 if ( pairedEventMap[e.type] ) { 240 $(e.currentTarget).one( mmpsAddNamespace( pairedEventMap[e.type] ), function(oe) { 241 // Make sure all paired event handlers are turned off, not just the one that fired 242 $(oe.currentTarget).off( mmpsAddNamespace( pairedEventMap[e.type] ) ); 243 // Then toggle the Class on the Subject element 244 $(e.data.subject).toggleClass(e.data.id); 257 245 }); 258 246 } 259 if (singleEventMap[e.type]) {260 e.data.subject.off(singleEventMap[e.type]);261 }262 247 } 263 248 264 249 // Toggle our special Class in the final subject element 265 e.data.subject.toggleClass(e.data.id); 266 }; 267 268 checkStateFn = function(e) { 269 if ( $(e.target).is( e.data.eState ) ) { 270 // Target Element has this State, so apply our Class to the Subject 271 if (! ($(subject).hasClass(id)) ) { 272 $(subject).toggleClass(id); 273 } 274 } else if ( $(subject).hasClass(id) ) { 275 // Target Element does not currently have the state so Clear on Subject if set 276 $(subject).toggleClass(id); 277 } 278 // e.stopPropogation(); 250 $(e.data.subject).toggleClass(e.data.id); 279 251 }; 280 252 … … 285 257 var qClass = false; 286 258 287 // test if Parent has a Pseudo Class or Element 288 if (pseudoParents.length) { 289 $(pseudoParents).each(function(pidx) { 290 var ppNorm = this.replace(/\-/g, '_'); 291 if (pseudoElements[ ppNorm ]) { 292 parsedSelectors += pseudoElements[ ppNorm ]; 293 qClass = true; // apply class later .. maybe 259 // Loops through the Pseudo Parents and apply those that are needed 260 $(pseudoParents).each(function() { 261 var ppNorm = this.replace(/\-/g, '_'); 262 if (pseudoElements[ ppNorm ]) { 263 parsedSelectors += pseudoElements[ ppNorm ]; 264 qClass = true; // apply class later .. maybe 265 } else { 266 // it's one of the other Pseudo Classes :hover :click etc. 267 // Build a handler for the specified Pseudo Class 268 $(subject).on( mmpsAddNamespace( eventMap[ this ] || this ), { id: id, subject: $(subject) }, toggleFn ); 269 } 270 }); 271 272 if ( pseudoTargets.length ) { 273 var orgChild = $(this); 274 275 $(pseudoTargets).each(function() { 276 // Process each Target Pseudo Class or Pseudo Element modifier 277 var pt = this.split(/(?:\(|\))/g); 278 var ptNorm = pt[0].replace(/\-/g, '_'); 279 var ptParam = stateMap[ ptNorm ] + ( pt[1] ? '(' + pt[1] + ')' : '' ); 280 281 if ( pseudoElements[ ptNorm ] ) { 282 // It's a Pseudo Element ::after, ::before, etc. 283 // Ignored on the Target element; we're working on the Subject 284 } else if ( eventMap[ this ] ) { 285 // It's one of the special Event Pseudo Classes :hover :checked :focus 286 // An event-based Pseudo Class - Build a handler for the Event 287 $(orgChild).on( mmpsAddNamespace( eventMap[ this ] ), { id: id, subject: $(subject) }, toggleFn ); 288 // Do not apply Class to the subject - Event will apply it 289 qClass = false; 290 } else if ( stateMap[ ptNorm ] ) { 291 // A normal or special Parameterized Pseudo Class State 292 qClass = true; 294 293 } else { 295 // it's one of the other Pseudo Classes :hover :click etc.296 // Build a handler for the specified Pseudo Class297 $(subject).on( eventMap[ this ] || this, { id: id, subject: $(subject) }, toggleFn );294 // An unknown Pseudo Class - DEFAULT is to build a handler for it 295 $(orgChild).on( mmpsAddNamespace( this.toString() ), { id: id, subject: $(subject) }, toggleFn ); 296 qClass = false; 298 297 } 299 298 }); 300 } 301 302 if (pseudoTargets.length) { 303 var orgChild = $(this); 304 305 $(pseudoTargets).each(function(tidx) { 306 // Target has a Pseudo Class or Pseudo Element modifier 307 var ptNorm = this.replace(/\-/g, '_'); 308 309 var ptParam = null; 310 if ( /\(/.test(this) ) { 311 // A special case Pseudo Class with a parameter 312 var pcname = this.split(/(?:\(|\))/g); 313 pcname[0] = pcname[0].replace( /\-/g, '_' ); 314 315 if ( stateParamMap[ pcname[0] ] ) { 316 ptParam = stateParamMap[ pcname[0] ].replace(/\#/, pcname[1]); 317 } 318 } 319 320 if ( pseudoElements[ ptNorm ] ) { 321 // It's a Pseudo Element ::after, ::before, etc. 322 // Ignored on the Target element 323 } else if ( eventMap[ this ] ) { 324 // It's one of the special Event Pseudo Classes :hover :checked :focus 325 // Do not apply Class to the subject - Event will apply it 326 qClass = false; 327 // An event-based Pseudo Class - Build a handler for the Event 328 $(orgChild).on( eventMap[ this ], { id: id, subject: $(subject) }, toggleFn ); 329 } else if ( stateMap[ ptNorm ] ) { 330 // One of the Pseudo Class States 331 ptNormState = stateMap[ ptNorm ]; 332 333 // Hook an event handler for changes in the Target 334 $(orgChild).on( 'click load visibilitychange', { eState: ptNormState }, checkStateFn ); 335 336 if ( $(orgChild).is( ptNormState ) ) { 337 // The State is already set on the Target; force the class on the Subject 338 qClass = true; 339 } else { 340 // Target Element does not currently have the state so Clear on Subject if set 341 qClass = false; 342 } 343 } else if ( ptParam ) { 344 if ( $(orgChild).is( ptParam ) ) { 345 // Target Element has this State, so apply our Class to the Subject 346 qClass = true; 347 } 348 } else { 349 qClass = false; 350 // An unknown Pseudo Class - DEFAULT is to build a handler for the it 351 $(orgChild).on( this.toString(), { id: id, subject: $(subject) }, toggleFn ); 352 } 353 }); 354 } else if (! pseudoParents.length) { 355 // Simple Target with no Pseudo crap 299 } else if (! pseudoParents.length ) { 356 300 qClass = true; 357 301 } 358 302 303 // if qClass is set then we need to set the new Custom class 'id' on the Subject element 359 304 if (qClass) { 360 305 $(subject).toggleClass(id); … … 409 354 410 355 stateMap = { 411 // checked: ':checked',412 356 disabled: ':disabled', 413 357 empty: ':empty', … … 437 381 } 438 382 }); 383 439 384 }); -
militant-moderates-css-parent-selector-mmps/trunk/js/mmParentSelector.min.js
r1186554 r1187993 1 1 2 jQuery(document).ready(function($){var k=0,i,j,CLASS='MMPS',eventMap={changed:'change',checked:'click',focus:'focus blur',hover:'mouseover mouseout',selected:'change',},pairedEventMap={mousedown:'mouseup mouseout'},singleEventMap={mouseup:'mouseout'},stateMap={active:':active',disabled:':disabled',empty:':empty',enabled:':enabled',first_child:':first-child',first_of_type:':first-of-type',in_range:':in-range',invalid:':invalid',last_child:':last-child',last_of_type:':last-of-type',link:':link',only_of_type:':only-of-type',only_child:':only-child',optional:':optional',out_of_range:':out-of-range',read_only:':read-only',read_write:':read-write',required:':required',target:':target',valid:':valid',visited:':visited'},stateParamMap={lang:':lang(#)',not:':not(#)',nth_child:':nth-child(#)',nth_last_child:':nth-last-child(#)',nth_last_of_type:':nth-last-of-type(#)',nth_of_type:':nth-of-type(#)'},pseudoElements={after:'::after',before:'::before',first_letter:'::first-letter',first_line:'::first-line',selection:'::selection'},parsed,parsedSelectors,matches,selectors,selector,parent,target,child,pseudoTargets,declarations,pseudoParent,pseudoParents,childSelector,childElements,REGEX=new RegExp((function(aryRegExp){var ret='';for(var i=0;i<aryRegExp.length;i++)2 jQuery(document).ready(function($){var evidx=0,k=0,i,j,CLASS='mmPpSsPrEfIx',eventMap={active:'focusin',focus:'focusin',hover:'mouseenter',},pairedEventMap={mousedown:'mouseup mouseout mouseleave',focusin:'focusout',keydown:'keyup',mouseenter:'mouseleave',mouseover:'mouseleave',},stateMap={active:':active',disabled:':disabled',empty:':empty',enabled:':enabled',first_child:':first-child',first_of_type:':first-of-type',in_range:':in-range',invalid:':invalid',lang:':lang',last_child:':last-child',last_of_type:':last-of-type',link:':link',not:':not',nth_child:':nth-child',nth_last_child:':nth-last-child',nth_last_of_type:':nth-last-of-type',nth_of_type:':nth-of-type',only_of_type:':only-of-type',only_child:':only-child',optional:':optional',out_of_range:':out-of-range',read_only:':read-only',read_write:':read-write',required:':required',target:':target',valid:':valid',visited:':visited'},pseudoElements={after:'::after',before:'::before',first_letter:'::first-letter',first_line:'::first-line',selection:'::selection'},parsed,parsedSelectors,matches,selectors,selector,parent,target,child,pseudoTargets,declarations,pseudoParent,pseudoParents,childSelector,childElements,REGEX=new RegExp((function(aryRegExp){var ret='';for(var i=0;i<aryRegExp.length;i++) 3 3 ret+=aryRegExp[i].source;return ret;})([/[\w\s\/\.\-\:\=\[\]\(\)\~\+\|\,\*\'\"\^$#>]*(?=!)/,/[\w\s\/\.\-\:\=\[\]\(\)\~\+\|\,\*\'\"\^$#>!]*\{{1}/,/[^\}]+\}{1}/]),"gi");parse=function(sRawCSS){sRawCSS=sRawCSS.replace(/(\/\*([\s\S]*?)\*\/)/gm,'');if(matches=sRawCSS.match(REGEX)){parsed='';for(i=-1;++i<matches.length;){style=$.trim(matches[i]);selectors=$.trim(style.split('{')[0]).split(',');declarations='{'+style.split(/\{|\}/)[1].replace(/^\s+|\s+$[\t\n\r]*/g,'')+'}';if(declarations==='{}'){continue;} 4 4 if(!/;}$/.test(declarations)) 5 5 declarations=declarations.replace(/}/g,';}');declarations=declarations.replace(/;/g,' !important;');parsedSelectors='';for(j=-1;++j<selectors.length;){selector=$.trim(selectors[j]);(parsedSelectors.length)&&(parsedSelectors+=",");if(/!/.test(selector)){var splitsel=selector.split('!');var splitp=splitsel[0].split(/[>~+\s]+/).reverse()[0].split(/[\:]+/);parent=$.trim(splitp[0]);pseudoParents=splitp.slice(1);var splitt=splitsel[1].split(/[>~+\s]+/).reverse()[0].split(/[\:]+/);target=$.trim(splitt[0])||[]._;pseudoTargets=splitt.slice(1);childSelector=selector.replace(/!/g,'').replace('::',':');$(pseudoParents).each(function(x){childSelector=childSelector.replace(':'+this,'');});$(pseudoTargets).each(function(x){if(eventMap[this])childSelector=childSelector.replace(':'+this,'');});childElements=childSelector.match(/([\>\+\~]|(\:not\()?((\w[\-\w]*|\*)|[\.\#]\w[\-\w]*|\:{1,2}\w[\-\w\(\)]*|\[[^\]]*\])+\)?\!?)/gi);if(childElements.length>1){var qDOM;do{qDOM=false;try{child=$(childSelector);} 6 catch(err){var ep=':'+$.trim(err.toString().match(/[\w\-]+$/i));var epp=childSelector.lastIndexOf(ep);if(epp>=0){childSelector=childSelector.replace(ep,'');qDOM=true;}}}while(qDOM);child.each(function(idx){var subject=$(this);var tmpNodes=childElements.slice(0,-1);;var n=$.trim(tmpNodes.pop());do{switch(n){case'>':n=$.trim(tmpNodes.pop());case'*':subject=subject.parent(n);break;case'+':n=$.trim(tmpNodes.pop());subject=subject.prev(n);break;case'~':n=$.trim(tmpNodes.pop());subject=subject.prev();while(subject&&!subject.is(n)){subject=subject.prev();} 7 if(subject){}else{} 8 break;default:subject=subject.closest(n);break;} 9 if(subject){}}while(subject&&n!=parent&&(n=$.trim(tmpNodes.pop())));if(subject){var id=CLASS+k++,ptNormState,toggleFn=function(e){if(e){if(pairedEventMap[e.type]){e.data.subject.on(pairedEventMap[e.type],function(oe){e.data.subject.toggleClass(e.data.id);e.data.subject.off(pairedEventMap[e.type]);});} 10 if(singleEventMap[e.type]){e.data.subject.off(singleEventMap[e.type]);}} 11 e.data.subject.toggleClass(e.data.id);};checkStateFn=function(e){if($(e.target).is(e.data.eState)){if(!($(subject).hasClass(id))){$(subject).toggleClass(id);}}else if($(subject).hasClass(id)){$(subject).toggleClass(id);}};idx&&(parsedSelectors.length)&&(parsedSelectors+=",");parsedSelectors+='.'+id;var qClass=false;if(pseudoParents.length){$(pseudoParents).each(function(pidx){var ppNorm=this.replace(/\-/g,'_');if(pseudoElements[ppNorm]){parsedSelectors+=pseudoElements[ppNorm];qClass=true;}else{$(subject).on(eventMap[this]||this,{id:id,subject:$(subject)},toggleFn);}});} 12 if(pseudoTargets.length){var orgChild=$(this);$(pseudoTargets).each(function(tidx){var ptNorm=this.replace(/\-/g,'_');var ptParam=null;if(/\(/.test(this)){var pcname=this.split(/(?:\(|\))/g);pcname[0]=pcname[0].replace(/\-/g,'_');if(stateParamMap[pcname[0]]){ptParam=stateParamMap[pcname[0]].replace(/\#/,pcname[1]);}} 13 if(pseudoElements[ptNorm]){}else if(eventMap[this]){qClass=false;$(orgChild).on(eventMap[this],{id:id,subject:$(subject)},toggleFn);}else if(stateMap[ptNorm]){ptNormState=stateMap[ptNorm];$(orgChild).on('click load visibilitychange',{eState:ptNormState},checkStateFn);if($(orgChild).is(ptNormState)){qClass=true;}else{qClass=false;}}else if(ptParam){if($(orgChild).is(ptParam)){qClass=true;}}else{qClass=false;$(orgChild).on(this.toString(),{id:id,subject:$(subject)},toggleFn);}});}else if(!pseudoParents.length){qClass=true;} 6 catch(err){var ep=':'+$.trim(err.toString().match(/[\w\-]+$/i));if(childSelector.lastIndexOf(ep)>=0){childSelector=childSelector.replace(new RegExp(ep,'g'),'');qDOM=true;}}}while(qDOM);child.each(function(idx){var subject=$(this);var tmpNodes=childElements.slice(0,-1);;var n=$.trim(tmpNodes.pop());do{switch(n){case'>':n=$.trim(tmpNodes.pop());case'*':subject=subject.parent(n);break;case'+':n=$.trim(tmpNodes.pop());subject=subject.prev(n);break;case'~':n=$.trim(tmpNodes.pop());subject=subject.prev();while(subject&&!subject.is(n)){subject=subject.prev();} 7 break;default:subject=subject.closest(n);break;}}while(subject&&n!=parent&&(n=$.trim(tmpNodes.pop())));if(subject){var id=CLASS+k++,mmpsAddNamespace=function(eType){return eType.split(/[ ]+/).join('.e'+id+' ')+'.e'+id;},toggleFn=function(e){var eid='E#'+evidx++;if(e){if(pairedEventMap[e.type]){$(e.currentTarget).one(mmpsAddNamespace(pairedEventMap[e.type]),function(oe){$(oe.currentTarget).off(mmpsAddNamespace(pairedEventMap[e.type]));$(e.data.subject).toggleClass(e.data.id);});}} 8 $(e.data.subject).toggleClass(e.data.id);};idx&&(parsedSelectors.length)&&(parsedSelectors+=",");parsedSelectors+='.'+id;var qClass=false;$(pseudoParents).each(function(){var ppNorm=this.replace(/\-/g,'_');if(pseudoElements[ppNorm]){parsedSelectors+=pseudoElements[ppNorm];qClass=true;}else{$(subject).on(mmpsAddNamespace(eventMap[this]||this),{id:id,subject:$(subject)},toggleFn);}});if(pseudoTargets.length){var orgChild=$(this);$(pseudoTargets).each(function(){var pt=this.split(/(?:\(|\))/g);var ptNorm=pt[0].replace(/\-/g,'_');var ptParam=stateMap[ptNorm]+(pt[1]?'('+pt[1]+')':'');if(pseudoElements[ptNorm]){}else if(eventMap[this]){$(orgChild).on(mmpsAddNamespace(eventMap[this]),{id:id,subject:$(subject)},toggleFn);qClass=false;}else if(stateMap[ptNorm]){qClass=true;}else{$(orgChild).on(mmpsAddNamespace(this.toString()),{id:id,subject:$(subject)},toggleFn);qClass=false;}});}else if(!pseudoParents.length){qClass=true;} 14 9 if(qClass){$(subject).toggleClass(id);}}});}}else{child=$(selector);if(child.length)parsedSelectors+=selector;}} 15 10 if(parsedSelectors.length){parsedSelectors+=' '+declarations;parsed+=parsedSelectors+"\n";}} -
militant-moderates-css-parent-selector-mmps/trunk/mmParentSelector.php
r1187616 r1187993 28 28 */ 29 29 30 if (!defined('ABSPATH')) die ('No direct access allowed'); 31 30 32 /* 31 33 * Define constant that controls which version of the JavaScript is loaded … … 43 45 // pure CSS rules. Depends on jQuery. 44 46 45 if ( MMPS_SCRIPT_DEV == 2 ) { 47 // If DEBUG mode is selected and the current user has capability to activate plugins .. 48 // AND the .dev.js full debug version is available then ... 49 if ( MMPS_SCRIPT_DEV == 2 && current_user_can( 'activate_plugins' ) && 50 file_exists( plugin_dir_path( __FILE__ ) . 'js/mmParentSelector.dev.js' ) ) { 46 51 // the .dev.js version is the working copy with full debugging included 47 52 // it is NOT included in the standard distribution, so protect against attempts to use it 53 wp_enqueue_script( 'mmps_js', plugins_url( 'js/mmParentSelector.dev.js', __FILE__ ), array( 'jquery' ) ); 48 54 49 if ( file_exists( plugin_dir_path( __FILE__ ) . 'js/mmParentSelector.dev.js' ) ) { 50 wp_enqueue_script( 'mmps_js', plugins_url( 'js/mmParentSelector.dev.js', __FILE__ ), array( 'jquery' ) ); 51 52 } else { 53 wp_enqueue_script( 'mmps_js', plugins_url( 'js/mmParentSelector.js', __FILE__ ), array( 'jquery' ) ); 54 } 55 56 } elseif ( MMPS_SCRIPT_DEV == 0 ) { 55 } elseif ( MMPS_SCRIPT_DEV != 1 ) { 56 // Either in full DEBUG mode but not allowed (not an admin) or FULL version NOT specified explicitly ... 57 57 // the .min.js version is stripped of all debugging code and minified 58 58 wp_enqueue_script( 'mmps_js', plugins_url( 'js/mmParentSelector.min.js', __FILE__ ), array( 'jquery' ) ); -
militant-moderates-css-parent-selector-mmps/trunk/readme.txt
r1187219 r1187993 5 5 Requires at least: 4.0.0 6 6 Tested up to: 4.2.2 7 Stable tag: 1.1. 17 Stable tag: 1.1.2 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 34 34 35 35 == Changelog == 36 = 1.1.2 (in development) = 37 * Changes in progress 36 = 1.1.2 = 37 * Protected development version JavaScript against execution by anyone other than a site Admin - This is only an issue on the development platform where visitors to the main site might encounter errors from code in development. 38 * Smoothing and sanding in various places, especially around debugging code that results in inefficiencies 39 * Added all the Event Types specified at **[W3 UI Events](http://www.w3.org/TR/DOM-Level-3-Events/#event-types-list)** 40 * Added unique Namespace to all event handlers; prevents crosstalk and inadvertant event handler removal 41 * Further obfuscated the MMPS "Class Prefix" used to generate unique Class Names 38 42 39 43 = 1.1.1 =
Note: See TracChangeset
for help on using the changeset viewer.