我正在使用简单的jQuery函数
$( 'foo' ).hover( function () {
$( this ).children( 'bar' ).delay( 250 ).stop( true, true ).slideToggle( 200 );
})
我注意到,如果我用鼠标将页面加载到&f; foo'元素然后悬停发生反转。我在mouseleave上显示并隐藏在mouseover上。
对此有什么好的解决方案吗?
答案 0 :(得分:0)
jQuery .hover
实际上是两个事件分组在一个:mouseenter
和mouseleave
。您有两种方法可以使用它,为每个事件指定一个函数或定义一个将在两个事件上触发的函数。这就是您在那里所做的事情,因此您的功能将在mouseenter
和mouseleave
上触发。
请参阅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 );
})