1

看这张照片:

在此处输入图像描述

这是错误还是标准?

PS:args 之后的鼠标悬停只是一个标签。

事件监听器

$ ->
  $('.bigger-on-hover').hover (event) ->

    console.log 'args'
    console.log arguments
    console.log @
    window.x = arguments
    window.y = @
    console.log 'args'
    console.log 'mouseover'
    console.log event.type
4

2 回答 2

1

mouseenter 仅在 Internet Explorer 中,但 jQuery 在其他浏览器中模仿它。

event实际上是 jQuery 事件,所以它的类型是mouseenter.

要查看本机事件,请使用event.originalEvent. 您可以使用 来查看其类型console.log(event.originalEvent.type)。在非 IE 中,该类型是mouseover.

jQuery 监听那个 mouseover 事件,当它听到它时,它检查鼠标指针是否已经在那个元素上,发现它不是,然后触发一个 jQuery mouseenter 事件。然后它将事件改回,mouseover以便在冒泡时具有正常效果。

当你使用 时.hover(),jQuery 会监听这些进入和离开事件来触发它的开启和关闭。

于 2013-04-18T12:47:04.490 回答
1

jQuery.fn.hover是别名:

jQuery.fn.extend({
    hover: function( fnOver, fnOut ) {
        return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );

那些mouseentermouseleave方法本身也只是特殊处理捷径

打印的对象console.log不是冻结的快照。如果在扩展对象之前修改了对象,则修改后的版本将记录到控制台。这就是这里发生的事情。

于 2013-04-18T12:51:21.577 回答