0

我有一个问题,我需要用 div 包围选择框。该选择框是透明的,因此样式(包括焦点样式)需要出现在周围的 div 上。我一直在尝试检测选择框是否聚焦,如果是则添加一个类。但似乎没有任何效果......我还使用了带有 .is :focus 的脚本,它在大多数浏览器中运行良好,但在 IE 尤其是 IE8 中运行良好,不幸的是我必须支持它。任何人都可以帮忙吗?

 <div class="styled-select">
<select id="Title" name="Title" required autofocus="autofocus">
     <option value="" selected=yes> Title </option>
     <option value="Ms" > Ms </option>
    <option value="Mrs" > Mrs </option>
 </select>
</div>    

var select = $('select:focus');    

$(select).each(function(){
      $('.styled-select').addClass('focus');
  });
4

2 回答 2

0

我认为您只需将每个更改为 focusin :

 $('#Title').focusin(function(){
      $(this).parent().addClass('focus');
  });

在这里演示

于 2013-09-13T11:20:57.093 回答
0

我应该添加一个点击事件,检测似乎不适用于选择的焦点。.focus 可以通过单击设置,并通过更改事件删除,但更改事件也是单击,所以它应该如下所示:

$("#Title").click(function () {
    if ($('.styled-select').hasClass('focus')) {
        $('.styled-select').removeClass('focus');
    } else {
        $('.styled-select').addClass('focus');
    }
});

小提琴:http: //jsfiddle.net/W5sYv/1/

于 2013-09-13T11:36:35.537 回答