我最近在Firefox中发现了一个警告
警告:未知的伪类或伪元素'隐藏'
这是页面http://eleven23.net/eleven23/beta/work/web/lounge22.php
当它到达具有img:hidden
的javascript部分时会发出警告$('img:hidden')。eq(0).fadeIn(500); //逐个淡入隐藏的图像 i ++; //将1添加到计数
所以我想知道是否有人知道如何解决此警告。
谢谢!
答案 0 :(得分:2)
第一步是真正停止通过doThis()
重复调用setInterval
,此时此刻不会发生。因此警告每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次警告。
答案 1 :(得分:0)
不幸的是,这是JQuery本身的一个错误。请参阅:http://docs.jquery.com/Selectors/hidden
检查萤火虫,即使在他们的示例页面上,您也会得到同样的警告。它引用了一个不存在的CSS伪类:hidden。你在哪里使用$('img:hidden')