当鼠标悬停时,jquery .hover反向加载

时间:2015-05-27 19:28:41

标签: jquery jquery-hover

我正在使用简单的jQuery函数

$( 'foo' ).hover( function () {
     $( this ).children( 'bar' ).delay( 250 ).stop( true, true ).slideToggle( 200 );
})

我注意到,如果我用鼠标将页面加载到&f; foo'元素然后悬停发生反转。我在mouseleave上显示并隐藏在mouseover上。

对此有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

jQuery .hover实际上是两个事件分组在一个:mouseentermouseleave。您有两种方法可以使用它,为每个事件指定一个函数或定义一个将在两个事件上触发的函数。这就是您在那里所做的事情,因此您的功能将在mouseentermouseleave上触发。

请参阅https://api.jquery.com/hover/

如果您希望仅在mouseenter上进行操作,则需要按照以下结构进行设置:.hover( handlerIn, handlerOut )。像这样:

    $( 'foo' ).hover( function () {
         function(){
          //this will be triggered only on mouseenter
           $( this ).children( 'bar' ).delay( 250 ).stop( true, true ).slideToggle( 200 );
         },
         function(){
         //insert here the behavior you want on mouseleave, if any
         }
    })

如果您在mouseleave上不需要任何行为,则只需更改.hover .mouseenter即可。像这样:

$( 'foo' ).mouseenter( function () {
     $( this ).children( 'bar' ).delay( 250 ).stop( true, true ).slideToggle( 200 );
})