Aggiungere e togliere Classi CSS: toggleClassName

Scritto il 23 Aprile 2007
Nella categoria Javascript, Produzioni Proprie
Tag: , , ,

 

Oggi ho scritto la funzione ToggleClassName perchè la userò in una nuova edizione di Travian Più Più. Serve per aggiungere e togliere una classe CSS ad un elemento, chiaramente se è già presente la toglie, altrimenti la aggiunge.

Io l’ho implementata con Element.prototype chiaramente può essere fatta anche come funzione esterna, con piccoli cambiamenti.

Element.prototype.toggleClassName = function(className) {
	if ( (' '+this.className+' ').indexOf(' '+className+' ') > -1) {
		var str = ' '+this.className+' ';
		str = str.replace(new RegExp(' '+className));
		str = str.substr(1).substr(0,str.length-2);
		this.className = str;
		return false;
	} else {
		this.className += ' '+className;
		return true;
	}
}

Il grosso problema che ho dovuto affrontare è nel separatore spazio delle classi, quindi il codice non risulta snellissimo, per quelli interessati si può raggruppare le prime 4 righe dopo il primo if in una unica, ma a me non piace tantissimo e poi diventa una riga troppo lunga per essere visualizzata qui :P

Ultima annotazione, la funzione restituisce true se aggiunge, falsese toglie.

Ti potrebbe interessare...

Commenti

Scrivi un commento

Se vuoi.

Nome (obbligatorio)

E-mail (obbligatorio)

Sito web

Commenti