我是JQuery API的新手。 我一直在使用鼠标悬停,但我以前从未使用过悬停。 所以我想知道我是否应该使用悬停。
答案 0 :(得分:10)
好吧,.hover()
为事件mouseenter
和mouseleave
绑定了两个处理程序,因此这是一种更方便的方式,也更容易理解目的。
mouseenter
与mouseover
不同,只要游标结束/进入处理程序绑定的元素的子元素,mouseenter
不会到。
当光标进入元素时,它只被触发一次。即使光标位于子元素上,也会始终触发mouseover
。
了解差异的最佳方法是查看mouseleave()
的示例。
此外,mouseover
和mouseout
是真正的JavaScript事件,而mouseenter
和mouseleave
是由jQuery(afaik)提供的事件。
最终,这取决于你想要达到的目标。没有对错,所有这些方法都有其目的。除非你展示一些代码,否则没有更多的话要说。
如果你的意思是:hover
在CSS中,你可以用它来达到预期的效果,那就去吧。如果针对某个问题存在非JS解决方案,请始终选择此解决方案。
答案 1 :(得分:2)
hover
只需在一个函数中执行这两项功能,即可让您免于同时执行mouseenter
和mouseleave
。
答案 2 :(得分:1)
我更喜欢使用css hover,因为我似乎写了更少的代码来做同样的事情。
答案 3 :(得分:0)
它们是相同的,除了悬停处理mouseenter和mouseleave
请参阅:http://api.jquery.com/hover/
所以你可以像这样使用它
$('selector').hover(function () {
// Do stuff on mouse enter
}, function () {
// Do other stuff on mouse leave
}
)
答案 4 :(得分:0)
由于您正在学习,这是另一个等同于使用悬停:
$('selector').bind('mouseenter mouseleave', function(){
if (event.type == "mouseenter") {
// MouseEnter code
} else {
// MouseLeave code
}
})