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')