FireFox警告“Unknown伪类或伪元素’隐藏’”一直反复运行

我最近在Firefox中发现了一个警告

警告:未知的伪类或伪元素’隐藏’

这是页面http://eleven23.net/eleven23/beta/work/web/lounge22.php

当它到达具有img:hidden的javascript部分时会发出警告

$(’img:hidden’)。eq(0).fadeIn(500); //逐个淡入隐藏的图像i ++; //将1加1

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

谢谢!

第一步是通过setInterval真正停止重复调用doThis() ,此时此刻不会发生。 因此警告每500ms出现一次。

更改

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

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

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

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


现在给你的错误。 你可以做很多事情来阻止这个错误出现多次调用doThis()

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

现在AFAIK hidden不是有效的CSS选择器,因此虽然Firefox支持对querySelectorAll()的调用,但它在遇到未知选择器后正确失败。 jQuery捕获错误,然后选择image:hidden自己。

如果你根本不想看到这个错误,你可以使用不同的jQuery语法,在这种情况下会阻止Sizzle尝试使用querySelectorAll()

更改

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

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

但我并不建议你这样做,因为它不会让你在控制台中只有4-5次警告。

不幸的是,这是JQuery本身的一个错误。 请参阅: http : //docs.jquery.com/Selectors/hidden

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