Catégories
-
Commentaires récents
Archives
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- avril 2006
- janvier 2006
- décembre 2005
- novembre 2005
- juin 2005
Autres articles susceptibles de vous intéresser :
- 5 janvier 2010 -- Javascript – Debug application en Ajax
- 1 octobre 2009 -- Récupérer la valeur d’un select en Javascript
- 24 juin 2008 -- Menu horizontal à plusieurs niveaux


Javascript – Observer Pattern pour vos onglets
Bon, nous allons voir comment appliquer un « Observer Pattern » (patron Observateur) en javascript.
Tout d’abord, nous avons besoin de 2 types d’objets :
Observer = function(name) {
this.name = name;
this.update = function(observable) {
if (observable.nav == this.name) {
this.className = 'nav_selected';
show.call($(this.name+'s'));
} else {
this.className = 'nav';
hide.call($(this.name+'s'));
}
}
};
Observable = function() {
this.observers = new Array();
this.notifyObservers = function() {
for (var i=0; i < this.observers.length; i++) {
this.observers[i].update(this);
}
}
this.addObserver = function(observer) {
this.observers.push(observer);
observer.update(this);
}
};
Et voilà (ou presque), on crée un objet mod Nav qui héritera par la suite d’Observable :
var modNav = {
nav:'client',
all:['client','product','group','schedule']
};
modNav.setNav = function(o) {
this.nav = (typeof(o) == 'string') ? o : o.id ;
this.notifyObservers();
}
modNav.getNav = function() {
return this.nav
}
modNav.init = function() {
for (var j=0; j
var m = this.all[j];
Observer.call($(m),m);
this.addObserver($(m));
}
}
Il ne reste plus qu’à faire hériter les objets div modifiable (un onglet <=> une div) :
Observable.call(modNav);
modNav.init();
Avec, pour notre exemple :
Et voilà (enfin) les onglets sont observables et nos moutons sont bien g…
Autres articles susceptibles de vous intéresser :