我遇到了一个奇怪的问题。我正在考虑编写一个插件,所以我开始热情。但是当我遇到这个问题时,我的热情很快就消失了。首先是我的代码:
(function ($) {
$.fn.hoverme = function () {
//Define default values
var defaults = {
color: 'inherited',
size: ''
}
//Make the hover function
$(this).on('hover', function () {
var currentMousePos = {
x: event.pageX,
y: event.pageY
}
console.log(currentMousePos.x);
})
}
}(jQuery));
非常基本的东西。问题是:我无法悬停在插件中工作。鼠标悬停,mouseleave和所有其他事件都有效。
我在这里遗漏了什么。
我这样调用插件:
$(document).ready(function () {
$('#element').hoverme();
})
答案 0 :(得分:1)
hover
不是有效的事件,mouseenter
和mouseleave
是有效的事件。
jQuery确实支持以前版本中的hover
事件,但不建议使用它,并且在较新版本中它已被删除。
您应该使用mouseenter
和mouseleave
事件,因为您的插件名为$.fn.hover
,您实际上已经覆盖了jQuery的本机$.fn.hover
方法。
如果要在移动时捕获鼠标,请改为使用mousemove
事件