firefox css bug / issue

时间:2012-09-15 12:47:37

标签: jquery html css firefox select

在使用精美的Chrome和IE7-9时,firefox又带来了另一个惊喜......

http://jsfiddle.net/D3zXj/

我要做的是根据所选Select的颜色更改option的颜色。出于某种神秘的原因,它在firefox中不起作用。

任何想法为什么?

$('#selectstat_sch').change(function(){
    $(this).css('color',$('option:selected',this).css('color'));
}).trigger('change');

3 个答案:

答案 0 :(得分:1)

详细说明undefined,我们可能想先验证我们的css属性,

如果存在其他一些属性,这也应该有效。

http://jsfiddle.net/D3zXj/2/

    var style=$('option:selected',this).attr('style');
    var matches=style.match(/color:([^;]+)/);
    if (matches) $(this).css('color',matches[1]);
    //else alert('no match');

答案 1 :(得分:0)

使用attr('style')代替css('color'):

$(document).ready(function(){
    $('#selectstat_sch').change(function(){
        $(this).attr('style',$('option:selected').attr('style'));
    });
});

但是这个副本会覆盖整个样式。

答案 2 :(得分:0)

选择此选项后,它会获得与HTML中的颜色不同的计算颜色,因为有一个UA工作表规则可以为所选选项设置样式。实际上,您可以看到这一点:所选选项为白色,背景为蓝色。

因此,您可能只想获得.style.color,而不是从选项中获取计算颜色,因为这就是您想要的,