Javascript FireFox警告“;未知的伪类或伪元素';隐藏的'&引用;一次又一次地跑

Javascript FireFox警告“;未知的伪类或伪元素';隐藏的'&引用;一次又一次地跑,javascript,jquery,Javascript,Jquery,我最近发现Firefox上出现了一个警告 警告:未知伪类或伪元素“隐藏” 这是第页 当到达包含img:hidden的javascript部分时,就会出现警告 $('img:hidden').eq(0).fadeIn(500)//在隐藏的图像中逐个淡出 i++//在计数中加1 所以我想知道是否有人知道如何解决这个警告 谢谢 不幸的是,这是JQuery本身的一个缺陷。见: 检查firebug,即使在他们的示例页面上,您也会收到同样的警告。它引用了一个不存在的CSS伪类:hidden。在使用$('im

我最近发现Firefox上出现了一个警告

警告:未知伪类或伪元素“隐藏”

这是第页

当到达包含img:hidden的javascript部分时,就会出现警告

$('img:hidden').eq(0).fadeIn(500)//在隐藏的图像中逐个淡出 i++//在计数中加1

所以我想知道是否有人知道如何解决这个警告


谢谢

不幸的是,这是JQuery本身的一个缺陷。见:


检查firebug,即使在他们的示例页面上,您也会收到同样的警告。它引用了一个不存在的CSS伪类:hidden。在使用
$('img:hidden')

时,第一步是通过
setInterval
真正停止重复调用
doThis()。因此,警告每隔500毫秒出现一次

改变

$(document).ready (function() {
  var int = setInterval("doThis(i)",500);
});
$('img:hidden').eq(0).fadeIn(500);

否则,对
clearInterval(int)
的调用将不会执行任何操作,因为您声明了
var int
两次,并尝试清除不是间隔的“外部”int

在此修复之后,控制台中只应保留4-5条此警告


现在来谈谈你的错误。要阻止此错误准确地出现在调用
doThis()
的次数上,您所能做的不多

jQuery在内部使用Sizzle作为选择器引擎。在某些情况下,Sizzle会尝试使用(在支持的浏览器上)函数来查找与选择器匹配的元素

现在AFAIK是
隐藏的
不是一个有效的CSS选择器,因此尽管Firefox支持调用
querySelectorAll()
,但它在遇到未知的选择器后正确地失败了。jQuery捕获错误,然后选择
image:hidden
本身

如果您根本不想看到此错误,可以使用不同的jQuery语法,在本例中,这将阻止Sizzle尝试使用
querySelectorAll()

改变

$(document).ready (function() {
  var int = setInterval("doThis(i)",500);
});
$('img:hidden').eq(0).fadeIn(500);


但我不建议您这样做,因为它实际上不会让您在控制台中减少4-5个警告。

谢谢,我采用了这种策略,尽管它仍然报告4-5个警告。这是一个比每500毫秒运行一次更好的解决方案!