何时选择 mouseover() 和 hover() 函数?

Posted

技术标签:

【中文标题】何时选择 mouseover() 和 hover() 函数?【英文标题】:When to choose mouseover() and hover() function? 【发布时间】:2013-07-09 11:47:30 【问题描述】:

jQuery .mouseover().hover() 函数有什么区别?如果它们完全一样,为什么 jQuery 会同时使用它们?

【问题讨论】:

这不是重复的问题。您提供的链接有 mouseover 和 mouseenter 事件,但我的是 mouseover 和 hover 事件。 它们与 mouseover nad mouseleave 相同,并且下面接受的答案不准确...悬停功能添加 mouseenter 和 mouseleve 事件而不是 mouseover 和 mouseout 事件 参见jsfiddle.net/arunpjohny/cZb5b/1 将鼠标从el 元素移动到child 并检查控制台 @ArunPJohny 请重新阅读,即 mouseenter 和 mouseleave 不是 mouseover 和 mouseout。 还有hover - jsfiddle.net/arunpjohny/cZb5b/2如果你能分析一下控制台,你就能找到区别... 【参考方案1】:

来自官方 jQuery 文档

.mouseover() 将事件处理程序绑定到“鼠标悬停”javascript 事件或触发器 元素上的那个事件。

.hover()绑定一两个处理程序 到匹配的元素,当鼠标指针被执行时 进入离开元素。

调用$(selector).hover(handlerIn, handlerOut) 是以下的简写: $(selector).mouseenter(handlerIn).mouseleave(handlerOut);


.mouseenter()

绑定一个事件处理程序,当鼠标进入一个元素时触发, 或在元素上触发该处理程序。

mouseover 在指针移入子元素时触发 好吧,而 mouseenter 仅在指针移动到 绑定元素。


这是什么意思

因此,.mouseover().hover() 相同,同样,.mouseover().mouseenter() 相同。

$('selector').mouseover(over_function) // may fire multiple times

// enter and exit functions only called once per element per entry and exit
$('selector').hover(enter_function, exit_function) 

【讨论】:

【参考方案2】:

.hover() 函数接受两个函数参数,一个用于mouseenter 事件,一个用于mouseleave 事件。

【讨论】:

就问题标题中提到的两个功能之间的差异而言,这是一个很好的观点,谢谢!查看 w3schools 上的以下链接,了解 .hover() 的工作原理:w3schools.com/jquery/event_hover.asp【参考方案3】:

您可以在 jQuery 文档页面上试用 http://api.jquery.com/mouseover/。这是一个不错的小型交互式演示,它非常清晰,您可以亲自看到。

简而言之,您会注意到鼠标悬停事件发生在元素上方时 - 来自其子元素或父元素,但鼠标进入事件仅在鼠标从父元素移动到元素。

【讨论】:

【参考方案4】:

来自官方文档:(http://api.jquery.com/hover/)

.hover() 方法绑定了 mouseenter 和 mouseleave 事件的处理程序。您可以使用它在鼠标位于元素内时简单地将行为应用于元素。

【讨论】:

【参考方案5】:

如您所见,http://api.jquery.com/mouseenter/

mouseenter JavaScript 事件是 Internet Explorer 专有的。 由于事件的通用性,jQuery 模拟了这个事件,所以 无论浏览器如何,它都可以使用。该事件被发送到 鼠标指针进入元素时的元素。任何 html 元素 可以接收这个事件。

【讨论】:

以上是关于何时选择 mouseover() 和 hover() 函数?的主要内容,如果未能解决你的问题,请参考以下文章

Jquery hover方法使用及 mouseenter与mouseleave和 mouseover与mouseout的区别

如何:在 mouseOver/mouseOut - JQuery .hover 上添加/删除类?

swiper轮播器的常用案例分析(swiper hover停止mouseover停止)

jquery中取消和绑定hover事件的正确方式

mouseover和mouseenter事件有什么区别?

求指导请问 百度地图的Marker 有mouseover mousemove这些事件吗