javascript - 如果输入有预选值,jQuery mouseleave 会触发一个事件

标签 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/

最佳答案

您可以检查输入是否聚焦于用户名字段:

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

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

关于javascript - 如果输入有预选值,jQuery mouseleave 会触发一个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732639/

相关文章:

javascript - 来自 <strong> 元素的 ParseInt/text/value

javascript - React Native this2 .'function' 不是函数

javascript - 显示具有双重渲染 View 的弹出窗口

javascript - 使用 Javascript 解析格式错误的 JSON

php - 如何使用 PHP 和 Mysql 将 HTML div 标签转换为带有 CSS 样式的 pdf

jquery - 淡入和淡出文本循环 - jQuery

javascript - Meteor helper 添加适当的 CSS 一小会儿,然后消失

javascript - 在node.js中构建socket.io/express应用程序时我需要http吗?

javascript - 在 X 和 XX 之间在 JS 中应用循环

jQuery - 专注于 TR