SMMP/js/lib/reset.js

80 lines
2.3 KiB
JavaScript

/* SELECTEUR SIMPLIFIE
*
* @ifOrClass<String> L'id ou la classe de l'element cible
*
* @return element<Element> Retourne l'element de cet ID ou cette classe si trouve
* @return null Retourne null si rien n'est trouve
*
*/
function $(idOrClass){
var byId = document.querySelectorAll('#'+idOrClass);
var byClass = document.querySelectorAll('.'+idOrClass);
if( byId.length > 0 ) return byId[0];
else return byClass[0];
}
/* Retourne un data-* attribute d'un element (surcharge de l'ELEMENT natif)
*
* @attribute<String> L'attribut qui nous interesse
*
* @return value<String> Retourne la valeur si l'attribut existe
* @return false Retourne FALSE si rien n'a ete trouve
*
*
*/
Element.prototype.getData = function(attribute){
// On verifie qu'un data-* attribute existe
if( typeof this.dataset == 'undefined' )
return false;
return ( this.dataset.hasOwnProperty(attribute) ) ? this.dataset[attribute] : false;
}
/* Ajout de classe pour un element (surcharge de l'ELEMENT natif)
*
* @className<String> Classe a ajouter a l'element
*
*/
Element.prototype.addClass = function(className){
/* [1] On transforme la classe actuelle en tableau
====================================================*/
var classArray = this.className.split(' ');
/* [2] On ajoute la classe si elle n'y est pas deja
====================================================*/
if( classArray.indexOf(className) > -1 ) return; // La classe y est deja
classArray.push(className);
/* [3] On reformatte tout
====================================================*/
this.className = classArray.join(' ').trim();
};
/* Suppression de classe pour un element (surcharge de l'ELEMENT natif)
*
* @className<String> Classe a supprimer a l'element
*
*/
Element.prototype.remClass = function(className){
/* [1] On transforme la classe actuelle en tableau
====================================================*/
var classArray = this.className.split(' ');
/* [2] On retire la classe si elle y est
====================================================*/
var index = classArray.indexOf(className);
if( index == -1 ) return; // La classe n'y est pas
classArray = classArray.slice(0,index).concat( classArray.slice(index+1) );
/* [3] On reformatte tout
====================================================*/
this.className = classArray.join(' ').trim();
};