mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
|
(function($) {
|
||
|
|
||
|
$.selector.SimpleSelector.addMethod('specifity', function() {
|
||
|
if (this.spec) return this.spec;
|
||
|
|
||
|
var spec = [
|
||
|
this.id ? 1 : 0,
|
||
|
this.classes.length + this.attrs.length + this.pseudo_classes.length,
|
||
|
((this.tag && this.tag != '*') ? 1 : 0) + this.pseudo_els.length
|
||
|
];
|
||
|
$.each(this.nots, function(i,not){
|
||
|
var ns = not.specifity(); spec[0] += ns[0]; spec[1] += ns[1]; spec[2] += ns[2];
|
||
|
});
|
||
|
|
||
|
return this.spec = spec;
|
||
|
})
|
||
|
|
||
|
$.selector.Selector.addMethod('specifity', function(){
|
||
|
if (this.spec) return this.spec;
|
||
|
|
||
|
var spec = [0,0,0];
|
||
|
$.each(this.parts, function(i,part){
|
||
|
if (i%2) return;
|
||
|
var ps = part.specifity(); spec[0] += ps[0]; spec[1] += ps[1]; spec[2] += ps[2];
|
||
|
});
|
||
|
|
||
|
return this.spec = spec;
|
||
|
})
|
||
|
|
||
|
$.selector.SelectorsGroup.addMethod('specifity', function(){
|
||
|
if (this.spec) return this.spec;
|
||
|
|
||
|
var spec = [0,0,0];
|
||
|
$.each(this.parts, function(i,part){
|
||
|
var ps = part.specifity(); spec[0] += ps[0]; spec[1] += ps[1]; spec[2] += ps[2];
|
||
|
});
|
||
|
|
||
|
return this.spec = spec;
|
||
|
})
|
||
|
|
||
|
|
||
|
})(jQuery);
|