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');
}
});
});