如何在模糊时关闭HTML选择下拉列表?

时间:2014-01-02 18:18:42

标签: html

嗨我需要我的下拉列表框,一旦它们失焦或者用户将鼠标悬停在除此之外的任何其他html元素上时关闭。如何实现这一目标?

我可以想到一个模糊事件,有没有更好的方法来处理它?<​​/ p>

1 个答案:

答案 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();不起作用,所以这是我最好的尝试。