25
Juin
09

jQuery 1.3.2 visibility





Pour une fois, je fais un petit post très technique qui pourra être utile à ceux qui vont bientôt se pencher sur la migration de leur code pour supporter la dernière mouture du célèbre framework jQuery, à savoir la 1.3.2 qui est incluse de base dans WordPress 2.8.

Comme vous le savez peut être, avec la 1.3, plus de sélecteur avec @. Vous pouvez donc simplement les retirer à la volée de vos fichiers. Le sélecteur [checked] utilisé pour sélectionner les checkbox checkées ne fonctionne plus sous Firefox. En le remplaçant par :checked, ça fonctionne de nouveau sur IE et FF.
Pour ceux qui utilisent la propriété CSS visibility permettant de savoir si un élément est affiché ou caché, les choses se corsent. En effet, la version 1.3.2 a un comportement complètement différent des versions précédentes.

Après quelques arrachages de cheveux, je suis enfin parvenu à trouver un workaround qui fonctionne pas trop mal. Pour savoir si un élément est visible ou pas, ne faites plus de tests sur is(:hidden) mais sur l’attribut height. Lorsqu’un élément est en visibility hidden, il a une height de 0 sous FF et IE. Sur IE 6, il y a un petit bug apparemment qui fait que lors de l’initialisation, il a une height de 1 mais ensuite après une série de changements de hidden à visible à hidden, il repasse correctement à 0. Donc si vous voulez savoir si un élément est hidden, testez si l’attribut height est inférieur à 2 :

if (jQuery(« #toto »).height() < 2)

{

// hidden

}

else

{

// visible

}







L'autre monde | Thème liquide par Olivier