我有一个适用于 jQuery 1.8.3 的函数,但是当我升级到 1.9.1 时它不再起作用,但文档没有变化。有人知道如何解决这个问题吗?
$(document).on("hover", "#cart-left", function(){
$("#cart").addClass('active');
});
http://jsfiddle.net/michalcerny/R9HZp/
感谢您的支持!
我有一个适用于 jQuery 1.8.3 的函数,但是当我升级到 1.9.1 时它不再起作用,但文档没有变化。有人知道如何解决这个问题吗?
$(document).on("hover", "#cart-left", function(){
$("#cart").addClass('active');
});
http://jsfiddle.net/michalcerny/R9HZp/
感谢您的支持!
在 1.9.1 中,您应该使用mouseover
$(document).on("mouseover", "#cart-left", function(){
$("#cart").addClass('active');
});
hover
速记的状态
从 jQuery 1.8 开始,hover
速记已被弃用。请参阅jQueryon()
文档:
自 jQuery 1.8 起已弃用:名称“hover”用作字符串“mouseenter mouseleave”的简写
从 jQuery 1.9 开始,不支持hover
简写。请参阅jQuery 1.9 升级指南
选择
在您的情况下,这意味着您应该使用该mouseenter
事件。例如:
$(document).on("mouseenter", "#cart-left", function(){
$("#cart").addClass('active');
});
更好地利用on()
还值得注意的是,除非传递给的选择器on()
引用动态添加到 DOM 的元素(即在页面加载后),否则无需将处理程序委托给document
. 相反,在这种情况下,您可能可以将处理函数直接绑定到元素,如下所示:
$("#cart-left").on("mouseenter", function(){
$("#cart").addClass('active');
});
问题不在于“on”功能,而在于 1.9.1 中已弃用(并删除)的“hover”伪事件:http: //jquery.com/upgrade-guide/1.9/#hover-伪事件