在JQuery中悬停鼠标悬停的任何优点?

时间:2010-05-18 18:48:31

标签: jquery

我是JQuery API的新手。 我一直在使用鼠标悬停,但我以前从未使用过悬停。 所以我想知道我是否应该使用悬停。

5 个答案:

答案 0 :(得分:10)

好吧,.hover()为事件mouseentermouseleave绑定了两个处理程序,因此这是一种更方便的方式,也更容易理解目的。

mouseentermouseover不同,只要游标结束/进入处理程序绑定的元素的子元素,mouseenter 不会到。
当光标进入元素时,它只被触发一次。即使光标位于子元素上,也会始终触发mouseover

了解差异的最佳方法是查看mouseleave()的示例。

此外,mouseovermouseout是真正的JavaScript事件,而mouseentermouseleave是由jQuery(afaik)提供的事件。

最终,这取决于你想要达到的目标。没有对错,所有这些方法都有其目的。除非你展示一些代码,否则没有更多的话要说。


如果你的意思是:hover在CSS中,你可以用它来达到预期的效果,那就去吧。如果针对某个问题存在非JS解决方案,请始终选择此解决方案。

答案 1 :(得分:2)

hover只需在一个函数中执行这两项功能,即可让您免于同时执行mouseentermouseleave

答案 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
 }
})