从关于 jquery docs on on
自 jQuery 1.8 起已弃用:名称“hover”用作字符串“mouseenter mouseleave”的简写。它为这两个事件附加了一个事件处理程序,处理程序必须检查 event.type 以确定事件是 mouseenter 还是 mouseleave。不要将“悬停”伪事件名称与接受一两个函数的 .hover() 方法混淆。
因此,当您使用hover
with时on
,它假定您正在使用此悬停,即
A function to execute when the mouse pointer enters or leaves the element.
因此,无论使用,
$(document).on('hover', 'ul.settings-links', function (e) {
if (e.type == "mouseenter") {
alert("show");
} else {
alert("hide");
}
});
OR
$('body').on({
mouseenter: function() {
$(this).find('ul.settings-links').fadeIn();
},
mouseleave: function() {
$(this).find('ul.settings-links').fadeOut();
}
}, 'div.settings-container');
您不能使用hover
接受两个函数作为参数的 which。