Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果输入具有预选值,jQuery mouseleave将触发事件_Javascript_Jquery - Fatal编程技术网

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个输入