下面的代码在jQuery 1.8上引发了错误不支持的伪:hover,而它在jQuery 1.7.2上工作得很好:
if(!$(this).parent().find('ul').first().is(':hover')) { $(this).parent().parent().removeClass('open'); }
有谁知道发生了什么?
解决方法
不幸的是,虽然我们都希望我们的代码是未来证明,但你的$(‘foo’).on(‘hover,… function(){// do stuff}代码是
deprecated in jQuery 1.8.我希望我有更好的消息给你,但由于对jQuery 1.8的核心更改,您的代码已被破坏.您现在必须使用语法
$('.selector').on( 'mouseenter mouseleave',function() { $(this).toggleClass('hover'); } ); if(!$(this).parent().find('ul').first().hasClass('hover')) { $(this).parent().parent().removeClass('open'); }
希望我有更好的消息,但是发生了弃用:/ … jQuery 1.8不喜欢你的快捷方式,他们已经弃用了.on()的悬停事件处理程序以及伪选择器:hover,所以它可以不再这样使用了.