【问题标题】:jQuery 1.8: unsupported pseudo: hoverjQuery 1.8:不支持的伪:悬停
【发布时间】:2012-08-17 01:01:26
【问题描述】:

以下代码在 jQuery 1.8 上引发错误 unsupported pseudo: hover,而它在 jQuery 1.7.2 上完美运行:

if(!$(this).parent().find('ul').first().is(':hover')) {
   $(this).parent().parent().removeClass('open');
}

有人知道怎么回事吗?

【问题讨论】:

  • 可能是重写的 Sizzle 的错误?
  • this问题。
  • docs中没有这样的选择器。
  • :hoverthis fiddle 使用 jQuery 1.8 和 Firefox 测试中为我工作,但 没有 在 IE 中使用 jQuery 1.7.2 1.8(但 IE 中的实际错误消息在 1.7.2 和 1.8 之间是不同的)。

标签: javascript jquery jquery-1.8


【解决方案1】:

不幸的是,虽然我们都希望我们的代码能够面向未来,但您的 $('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 事件处理程序以及伪选择器 @987654326 @,所以不能再这样用了。

【讨论】:

  • $('.selector').hover( function() { $(this).toggleClass('hover'); } ); ...
【解决方案2】:

老问题,但任何人都可以用谷歌搜索:

解决方法是反过来:

$(":focus, :active").filter($(".your-element"));

...因为.filter() 也接受jQuery 对象,这将匹配任何具有:focus:active 的伪元素,它们也具有.your-element 类。

换句话说,如果.your-element 没有悬停或处于活动状态,则此选择不匹配任何元素。

【讨论】:

    【解决方案3】:

    奇怪 - 对我来说, .is(":hover") 仍在 1.8 中工作,但在 1.9.1 中损坏。

    无论如何,这是一个修复

    function mouseIsOverWorkaround(what){
        var temp = $(what).parent().find(":hover");
        return temp.length == 1 && temp[0] == what;
    }
    

    然后在“裸”(非 jQuery 包装)元素上调用上述函数。在你的情况下,

    if(!mouseIsOverWorkaround($(this).parent().find('ul').first()[0]) {
       $(this).parent().parent().removeClass('open');
    }
    

    (别忘了[0])

    上述(对原始问题的评论)小提琴http://jsfiddle.net/nnnnnn/Tm77a/ 在 jQuery 1.9.1 中不起作用

    摆弄这个http://jsfiddle.net/mathheadinclouds/BxL4w/

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多