如果输入具有预选值,则jQuery mouseleave将触发事件

时间:2013-11-01 18:05:48

标签: javascript jquery

我有一个滑动登录框。如果我点击一个按钮,登录将向下滑动$('#loginBox').slideDown()

登录框由div包装

<div id="wrapper" style="position: relative">
 <button>Login</button>
 <div id="loginBox" style="position: absolute"><input name="username" type="text"></div>
</div>

的javascript:

$('#wrapper').on('mouseleave', function(){
 $('#loginBox').slideUp();
});

如果输入用户名具有预选值并且我想选择一个,则会触发mosueleave事件。并且登录框将向上滑动

我该如何防止这种情况?

这是一个示例代码http://jsfiddle.net/XBPmb/3/

1 个答案:

答案 0 :(得分:1)

您可以检查输入是否关注用户名字段:

$('#wrapper').on('mouseleave', function(){
     if( $( this ).find( 'input[name=username]' ).is( ':focus' ) ) {
         return false;
     }
     $('#loginBox').slideUp();
});

我已经updated你的jsFiddle来展示它是如何运作的。