4 votes

L'avertissement de FireFox "Pseudo-classe ou pseudo-élément 'hidden' inconnu" s'affiche en permanence.

J'ai récemment découvert un avertissement dans Firefox qui dit

Attention : Pseudo-classe ou pseudo-élément 'hidden' inconnus

Voici la page http://eleven23.net/eleven23/beta/work/web/lounge22.php

Et l'avertissement se produit lorsqu'on arrive à la partie du javascript qui contient img:hidden.

$('img:hidden').eq(0).fadeIn(500);//fait défiler les images cachées une par une i++;//ajoute 1 au compte

Je me demande donc si quelqu'un a une idée sur la façon de résoudre cet avertissement.

Merci !

2voto

jitter Points 35805

La première étape est d'arrêter réellement l'appel répété de doThis() via setInterval ce qui n'est pas le cas pour l'instant. L'avertissement apparaît donc toutes les 500 ms.

Changement

$(document).ready (function() {
  var int = setInterval("doThis(i)",500);
});

à

$(document).ready (function() {
  int = setInterval("doThis(i)",500);
});

Sinon, votre appel à clearInterval(int) ne fera rien comme vous l'avez déclaré var int deux fois et essayer d'effacer l'int "extérieur" qui n'est pas l'intervalle.

Après cette correction, seuls 4-5 de cet avertissement devraient rester dans votre console.


Maintenant, à votre erreur. Il n'y a pas grand-chose que vous puissiez faire pour empêcher cette erreur d'apparaître exactement autant de fois que vous appelez doThis() .

jQuery utilise Sizzle en interne comme moteur de sélection. Et dans certains cas, Sizzle essaie d'utiliser (sur les navigateurs pris en charge) la fonction querySelectorAll() pour trouver les éléments correspondant à votre sélecteur.

Maintenant AFAIK est hidden n'est pas un sélecteur CSS valide ; ainsi, bien que Firefox prenne en charge l'appel à la fonction querySelectorAll() il échoue correctement après avoir rencontré un sélecteur inconnu. jQuery capte l'erreur et effectue ensuite la sélection de image:hidden lui-même.

Si vous ne voulez pas voir cette erreur du tout, vous pouvez utiliser une syntaxe jQuery différente qui, dans ce cas, empêcherait Sizzle d'essayer d'utiliser querySelectorAll() .

Changement

$('img:hidden').eq(0).fadeIn(500);

à

$('img:hidden', $('div#content_wrapper')).eq(0).fadeIn(500);

Mais je ne vous conseille pas de le faire car cela ne vous apporte pas grand-chose, seulement 4-5 avertissements de moins dans votre console.

0voto

Dustin Hansen Points 482

Malheureusement, il s'agit d'un bogue au sein même de JQuery. Voir : http://docs.jquery.com/Selectors/hidden

Vérifiez firebug, même sur leur page d'exemple vous obtenez ce même avertissement. Il fait référence à une pseudo-classe CSS inexistante : hidden. Lorsque vous utilisez $('img:hidden')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X