【问题标题】:jQuery function .on works in 1.8.3 but not in 1.9.1jQuery 函数 .on 适用于 1.8.3 但不适用于 1.9.1
【发布时间】:2013-02-12 10:12:54
【问题描述】:

我有一个适用于 jQuery 1.8.3 的函数,但是当我升级到 1.9.1 时它不再起作用,但文档没有变化。有人知道如何解决这个问题吗?

$(document).on("hover", "#cart-left", function(){
    $("#cart").addClass('active');
});

http://jsfiddle.net/michalcerny/R9HZp/

感谢支持!

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    在 1.9.1 中你应该使用mouseover

    $(document).on("mouseover", "#cart-left", function(){
        $("#cart").addClass('active');
    });
    

    【讨论】:

      【解决方案2】:

      hover 速记的状态

      从 jQuery 1.8 开始,hover 简写已被弃用。见jQuery on() documentation

      自 jQuery 1.8 起已弃用:名称“hover”用作字符串“mouseenter mouseleave”的简写

      从 jQuery 1.9 开始,hover 简写不支持。见jQuery 1.9 Upgrade Guide

      替代方案

      在您的情况下,这意味着您应该使用mouseenter 事件。例如:

      $(document).on("mouseenter", "#cart-left", function(){
           $("#cart").addClass('active');
      });
      

      jsFiddle demo

      更好地使用on()

      还值得注意的是,除非传递给 on() 的选择器引用动态添加到 DOM 的元素(即在页面加载之后),否则无需将处理程序委派到 @ 987654332@。相反,在这种情况下,您可能可以将处理函数直接绑定到元素,如下所示:

      $("#cart-left").on("mouseenter", function(){
          $("#cart").addClass('active');
      });
      

      【讨论】:

        【解决方案3】:

        问题不在于“on”功能,而在于 1.9.1 中已弃用(并删除)的“hover”伪事件:http://jquery.com/upgrade-guide/1.9/#hover-pseudo-event

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-24
          • 2013-09-18
          • 2017-11-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多