Javascript 如果输入具有预选值,jQuery mouseleave将触发事件
我有一个滑动登录箱。如果我单击按钮,登录名将向下滑动Javascript 如果输入具有预选值,jQuery mouseleave将触发事件,javascript,jquery,Javascript,Jquery,我有一个滑动登录箱。如果我单击按钮,登录名将向下滑动$(“#loginBox”)。slideDown() loginbox由一个div包装 <div id="wrapper" style="position: relative"> <button>Login</button> <div id="loginBox" style="position: absolute"><input name="username" type="text"&g
$(“#loginBox”)。slideDown()
loginbox由一个div包装
<div id="wrapper" style="position: relative">
<button>Login</button>
<div id="loginBox" style="position: absolute"><input name="username" type="text"></div>
</div>
如果输入用户名预先选择了值,并且我想选择一个值,则会触发mosueleave事件。登录框将向上滑动
我怎样才能防止这种情况
下面是一个示例代码您可以检查输入是否关注用户名字段:
$('#wrapper').on('mouseleave', function(){
if( $( this ).find( 'input[name=username]' ).is( ':focus' ) ) {
return false;
}
$('#loginBox').slideUp();
});
我有您的JSFIDLE来演示它是如何工作的。您可以检查输入是否关注用户名字段:
$('#wrapper').on('mouseleave', function(){
if( $( this ).find( 'input[name=username]' ).is( ':focus' ) ) {
return false;
}
$('#loginBox').slideUp();
});
我有你的JSFIDLE来演示它是如何工作的。你能复制成JSFIDLE吗?否则,很难确定问题出在您提供的代码上。@MikeEdwards:我用一个示例代码更新了这篇文章,您是否将其复制为JSFIDLE?否则,很难确定问题出在您提供的代码上。@MikeEdwards:我用示例代码+1更新了这篇文章。是否有必要遍历所有输入字段,还是只找到一个带有
$(“#wrapper”)。find('input')。is(':focus')
@JuKe最好是循环。没有它就可以了,只有1个输入+1工作正常。是否需要循环所有输入字段,或者只找到一个带有$(“#wrapper”)。find('input')。is(':focus')
@JuKe最好是循环。如果没有,则仅适用于1个输入