Techno-magis

Novembre 2015

Jquery : show/hide/toggle c'est le mal !

Dimanche 15 Novembre 2015

De base, je ne suis pas super fan de Jquery. D'ailleurs, je ne l'utilise pas pour mes propres sites, mais il permet une compatibilité multi-navigateur (surtout les anciens) sans se prendre trop la tête.

Je sais que certains trouvent que .show(), .hide() et .toggle(bool) sont bien pratiques, mais ils posent certains problèmes quand on doit appliquer des règles CSS ou le détecter par sélecteur. On se retrouve parfois à passer par des règles bien compliquées pour pas grand-chose. Par exemple, dans ce genre de cas, si l'on veut ajouter une règle CSS pour cacher un élément, on devra nécessairement passer par !important ce qui n'est pas l'idéale :


Exemple repris sur un projet du boulot

Si j'avais une proposition, ça serait de passer par la classe hide. Donc .addClass('hide'), .removeClass('hide') ou .toggleClass('hide', bool).

CODE :

.hide {
	display:none;
}

De mon point de vue, cela apporte plusieurs avantages :

  • il n'y a pas de style ajouté directement sur les éléments du DOM (ce qui généralement mal vu),
  • côté CSS : on peut appliquer des règles par dessus sans faire des trucs tordus comme [style*="display"][style*="none"] pour détecter un élément caché par style="display:none",
  • coté Jquery : on peut utiliser des sélecteurs jquery comme .hide ou :not(.hide), car :visible ne fonctionne pas dans tous les cas, par exemple sur un élément entier masqué. De plus, détecter .hideet beaucoup plus rapides que :visible.

Les inconvénients :

  • c'est un peu plus lourd à écrire,
  • les classes sont probablement un peu plus lente que de changer directement le style,
  • ce n’est pas forcement applicable dans le cas de l'animation (et d'un support de navigateur obsolète).

Je note tout de même que l'inconvénient de la lourdeur s'efface parfois par la lourdeur qu'il faut entreprendre pour récupérer les éléments voulus dans certains cas. C'est d'ailleurs à cause de cas répété où j'ai vu des boucles super lourdent pour faire des choses simples que j'en suis venu à me dire qu'il était bien plus simple et propre de passer par la classe hide.

Commenter le billet...
Catégories :
Par Zéfling, le 15/11/2015 à 20:56:25
Le billet a été lue 62 fois, avec 0 commentaire publié.