2016-08-02 45 views
1

我试图获得一个background的css值。我的尝试失败了,正确的价值没有被传递。我有一个spectrum.js颜色选择器,无论我选择哪种颜色rgba(0,0,0,0)总是被选中。当我查看控制台中的背景时,它在DOM中正确显示它。试图获得jQuery的css值

有没有人明白为什么这是失败?

<div class="container" id="outside-preview"> 
    <div class="container" id="inside-preview"> 
     <div id="image-square"></div> 
    </div> 
</div> 
$(".colorpicker").spectrum({ 
    color: "#FFF", 
    showInput: true, 
    className: "full-spectrum", 
    showInitial: true, 
    showPalette: true, 
    showSelectionPalette: true, 
    maxSelectionSize: 10, 
    preferredFormat: "hex", 
    localStorageKey: "spectrum.demo", 
    change: function(color) { 
     var eq = $(this).index('.colorpicker'); 
     $('.container').eq(eq).css('background-color', color.toHexString()) 
    } 
}); 

var color = $("#outside-preview").css("background-color"); 
$("#result").html("That div is " + color + ""); 

Fiddle

+0

也许这将帮助:http://stackoverflow.com/questions/5999209/how-to-get-the-background-color-code-of-an-element – Pete

+0

哎是你在那里? –

回答

1

您需要将其读入change处理程序中的CSS值,以便做出选择后,更新#result元素的代码。您当前的代码只能在加载时读取它。

change: function(color) { 
    var eq = $(this).index('.colorpicker'); 
    $('.container').eq(eq).css('background-color', color.toHexString()) 

    var color = $("#outside-preview").css("background-color"); 
    $("#result").html("That div is " + color); 
}, 

Updated fiddle

+0

谢谢!就是这样。你知道为什么当我添加另一个内部颜色的变量,它甚至在我选择它之前设置了内部颜色html吗? https://jsfiddle.net/way4LmbL/15/ – Becky

+0

这是因为你已经为两个颜色选择器运行相同的逻辑。 –

+0

我还能怎么做?逻辑符合相同的目的,我有不同的ID /变量? – Becky