我有一个这样的选择框:
<select id="se">
<option>An option</option>
<option>Another option</option>
</select>
我想在用户在选择框中输入鼠标时显示文本,并隐藏用户是否使用鼠标离开该区域 . 像这样:
jQuery('#se').mouseover(function(){
someThing.show();
}).mouseout(function(){
someThing.hide();
});
第一步工作正常 . 当我进入选择框时,将显示文本 . 当我现在单击选择框以选择一个选项时,当我将鼠标放在选项上时会触发“mouseout”事件 - 但是选项元素是在选择元素中...我不知道为什么,但是jQuery似乎认为我不在选择框中 .
是否有任何解决方案,而无需更改HTML代码?
edit: 我尝试过mouseenter,mouseover,mouseout,mouseleave ......
5 回答
试试这个:
Fiddle
使用变量
isFocus
使用Javascript / jQuery的:
如果你想要一个纯粹的JS解决方案,真正保持mouseover事件触发选项的最简单方法是用Allen建议的
<div>
包装它 .我只是快速.wrap() method围绕你所有的
<select>
,并在它们周围自动添加一个div . 然后像这样设置一个实时鼠标悬停/ mouseout事件:jsFiddle DEMO
单击,取消绑定mouseout事件并鼠标悬停,绑定mouseout事件 .
我用了一个计时器来防止mouseleave事件被触发 . 它工作得很好 .