jQuery .mouseover()
和.hover()
函数之间有什么区别?如果它们完全相同,为什么jQuery会同时使用两者?
jQuery .mouseover()
和.hover()
函数之间有什么区别?如果它们完全相同,为什么jQuery会同时使用两者?
Answers:
.mouseover()
.hover()
将一个或两个处理程序绑定到匹配的元素,以在鼠标指针
进入和离开元素时执行。
呼叫$(selector).hover(handlerIn, handlerOut)
是以下方面的简写:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);
绑定要在鼠标进入元素时触发的事件处理程序,或在元素上触发该处理程序。
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)
.hover()
函数接受两个函数参数,一个用于mouseenter
事件,一个用于mouseleave
事件。
您可以在jQuery文档页面上http://api.jquery.com/mouseover/试用。这是一个很好的互动演示,非常清晰,您可以亲自看到。
简而言之,您会注意到当鼠标悬停在元素上时会发生鼠标悬停事件-来自其子元素或父元素,但是仅当鼠标从父元素移至该元素时才会发生鼠标进入事件。
从官方文档中:(http://api.jquery.com/hover/)
.hover()方法为mouseenter和mouseleave事件绑定处理程序。您可以使用它在鼠标位于元素内时将行为简单地应用于元素。
如您所见,请访问http://api.jquery.com/mouseenter/
mouseenter JavaScript事件是Internet Explorer专有的。由于该事件具有通用功能,因此jQuery会模拟此事件,以便无论浏览器如何都可以使用它。当鼠标指针进入元素时,此事件发送到元素。任何HTML元素都可以接收此事件。