J'ai récemment découvert un avertissement sur Firefox qui dit
Avertissement: pseudo-classe inconnu ou pseudo-élément 'caché'
Voici la page http://eleven23.net/eleven23/beta/work/web/lounge22.php
Et l'avertissement se produit quand il arrive à la partie de javascript qui a img: caché
$ ('Img: hidden'). Eq (0) .fadeIn (500); // s'efface dans les images cachées un par un i ++; // ajouter 1 au compte
Je me demande si quelqu'un a une idée sur la façon de résoudre cet avertissement.
Merci!
La première étape consiste à arrêter réellement l'appel répété de doThis()
via setInterval
qui, en ce moment, ne se produit pas. Ainsi, l'avertissement apparaît 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 puisque vous avez déclaré var int
deux fois et essayez d'effacer l'int "externe" qui n'est pas l'intervalle.
Après ce correctif, seul 4-5 de cet avertissement devrait rester dans votre console.
Maintenant à votre erreur. Il n'y a pas beaucoup que vous pouvez faire pour empêcher cette erreur d'apparaître exactement que plusieurs fois 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
pas un sélecteur CSS valide, bien que Firefox supporte l'appel à querySelectorAll()
il échoue correctement après avoir rencontré un sélecteur inconnu. JQuery saisit l'erreur, puis la sélection de l' image:hidden
elle-même.
Si vous ne voulez pas voir cette erreur du tout, vous pouvez utiliser une autre syntaxe jQuery qui, dans ce cas, empêcherait Sizzle de tenter 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 permet pas seulement de conserver seulement 4 à 5 avertissements dans votre console.
Malheureusement, c'est un bug dans JQuery lui-même. Voir: http://docs.jquery.com/Selectors/hidden
Vérifiez firebug, même sur leur page d'exemple, vous obtenez ce même avertissement. Il se réfère à une pseudo-classe CSS non existante: cachée. Où vous utilisez $('img:hidden')