嗨我需要我的下拉列表框,一旦它们失焦或者用户将鼠标悬停在除此之外的任何其他html元素上时关闭。如何实现这一目标?
我可以想到一个模糊事件,有没有更好的方法来处理它?</ p>
答案 0 :(得分:2)
好问题,这只适用于FF,因为IE和Chrome无法识别定位option
元素的事件:(
(不)实现此目的的方法是为timeout
元素设置option
,一旦我们mouseleave
它就会触发。如果在树中为其他mouseenter
注册了新的option
,我们只需清除该页面上.blur()
任何 select
的超时时间 *
<强> LIVE DEMO 强>
var blurSelectTimeout;
function blurSelect(){
blurSelectTimeout = setTimeout(function(){
$('select').blur();
},200);
}
$('select').mouseleave(blurSelect).find('option').hover(function(e){
if(e.type=='mouseenter') clearTimeout(blurSelectTimeout);
else blurSelect();
});
$(this).parent('select').blur();
不起作用,所以这是我最好的尝试。