" on.hover"没有在jQuery插件功能,鼠标悬停和点击工作

时间:2015-06-22 22:26:47

标签: javascript jquery jquery-plugins

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

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

fiddle

1 个答案:

答案 0 :(得分:1)

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

jQuery确实支持以前版本中的hover事件,但不建议使用它,并且在较新版本中它已被删除。

您应该使用mouseentermouseleave事件,因为您的插件名为$.fn.hover,您实际上已经覆盖了jQuery的本机$.fn.hover方法。

如果要在移动时捕获鼠标,请改为使用mousemove事件

FIDDLE