我对 select
元素的 jquery 事件绑定(bind)有这个问题。当我点击选择时,应该添加 .focus
类。但是从下拉列表中选择一个选项会破坏逻辑。
==> JSFIDDLE
步骤:
- 点击选择
- 选择一个选项
- 点击选择 -->
.focus
未添加
代码:
<a>
<select>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
</a>
$('select').focusin(function(){
$(this).parent('a').addClass('focus');
});
$('select').bind('focusout change',function(){
$(this).parent('a').removeClass('focus');
});
最佳答案
问题的根源是您只在选择获得焦点时添加类,然后在选择值更改时删除它。类永远不会被添加回来的原因是因为当您选择其中一个选项时,选择永远不会失去焦点。像这样的事情应该会让你得到你想要的行为:
$('select').click(function(){
$(this).parent('a').toggleClass('focus');
});
$('select').blur(function() {
$(this).parent('a').removeClass('focus');
});
编辑 - 我猜你想保留在选择一个选项时删除类的功能,这就是为什么我会绑定(bind)到点击而不是聚焦和模糊。
关于css - Jquery 事件绑定(bind)以选择焦点输入/输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809607/