【发布时间】:2012-08-17 12:28:54
【问题描述】:
我有一个这样的选择框:
<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代码吗?
编辑:我试过 mouseenter、mouseover、mouseout、mouseleave ...
【问题讨论】:
-
这是正确的行为。当您单击一个元素并且列表消失时,您不再位于列表之上。
-
正如@insertusernamehere 提到的,这是正确的行为。 jsfiddle.net/Pnm7J
-
究竟应该发生什么? “某事”是否应该停留更长时间而不是在选择后隐藏?
-
我认为问题在于将光标从选择框移动到选项列表会导致红色元素被隐藏。
标签: jquery mouseevent mouseover mouseenter mouseleave