"on.hover" 在 jQuery 插件功能中不工作,鼠标悬停和点击可以工作

"on.hover" not working in jQuery plugin function, mouseover and click do work

我运行遇到了一个奇怪的问题。我正在考虑编写一个插件,所以我开始热衷于此。但是当我 运行 进入这个问题时,我的热情很快就消失了。首先是我的代码:

(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));

非常基本的东西。问题是:我无法让悬停在插件中工作。鼠标悬停、鼠标离开和所有其他事件都有效。

我是不是遗漏了什么。

我这样调用插件:

$(document).ready(function () {
$('#element').hoverme();
})

fiddle

hover 不是有效事件,但是 mouseentermouseleave 是有效事件。

jQuery在之前的版本中确实支持hover事件,但是不推荐使用,在新版本中已经被移除。

你应该改用 mouseentermouseleave 事件,因为你的插件被命名为 $.fn.hover 你已经有效地覆盖了 jQuery 的原生$.fn.hover 方法。

如果你想在鼠标移动时捕捉它,你可以使用 mousemove 事件来代替

FIDDLE