Javascript 如果选择了“选项”,则更改“选择元素”的不透明度

Javascript 如果选择了“选项”,则更改“选择元素”的不透明度,javascript,jquery,css,Javascript,Jquery,Css,我有多个选择元素,如下所示: <li> <select> <option>select something</option> <option value="1">something</option> <option value="2">anything</option> </select> </li> <li

我有多个选择元素,如下所示:

<li>
    <select>
        <option>select something</option>
        <option value="1">something</option>
        <option value="2">anything</option>
    </select>
</li>
<li>
    <select>
        <option>select something</option>
        <option value="1">something</option>
    </select>
</li>
<li>
    <select>
        <option>select something</option>
        <option value="1">something</option>
    </select>
</li>

但这是不正确的,因为它不起作用。

您需要使用
change
事件,而不是两个
。每个

函数isNotEmpty(元素){
返回($('option:selected',element).attr('value')| |').length;
}
$('select')。在('change mouseout',函数(){
$(this.css({opacity:isNotEmpty(this)?0.5:1});
}).on('mouseover',函数(){
$(this.css({opacity:1})
}).change()

  • 挑选 某物 任何东西
  • 挑选 某物
  • 挑选 某物

确保为默认选项指定空值。然后简单地将一个
change
事件绑定到
select
元素,在页面加载时触发它一次(如果所选值不是默认值),并对悬停不透明度使用CSS

$('select')。在('change',function()上{
if(该值){
$(this.css('opacity','0.5');
}否则{
$(this.css('opacity','1');
}
}).change()
选择:悬停{
透明度:1!重要
}

  • 挑选 某物 任何东西
  • 挑选 某物
  • 挑选 某物

  • 未关闭您想禁用它还是只更改不透明度?只需更改不透明度,因为我想在鼠标悬停时将不透明度设置回1您问题中的任何选项都没有值。请更新您的问题和相应的代码,以准确说明您想要实现的目标。@billynoah我已经更新了帖子。如果选择“选择某物”,则不透明度应为1。如果选择了其他任何选项,则应为0.5
    $('select').each(function(select) {
        $('select option').each(function() {
            if($(this).is(':selected')) {
                select.css({ opacity: 0.5 });
            }
        });
    });
    
    $('select').each(function(select) {
        $('select option').each(function() {
            if($(this).is(':selected')) {
                $(this).parent.css('opacity', '0.5');
            }
        });
    });