jQuery在变量中保存css背景颜色

时间:2014-04-30 09:16:13

标签: javascript jquery css ajax

我想在我通过AJAX调用发送的变量中保存元素的背景颜色,所以我可以在PHP SESSION中使用它,但由于某种原因我无法将此css保存在变量中。

var color_rgb   = $( "#config-steps #selected-color" ).css( 'background-color' );

我的AJAX调用工作正常,我已测试将测试字符串放在color_rgb中,这样可以正常工作。

$.ajax( {
    type: "POST",
    url: sbg.ajaxurl,
    data: {
        color_rgb: color_rgb,
        action: 'sbg_config'
    }

});

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

试试这个,

function hexc(colorval) {
    var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    delete(parts[0]);
    for (var i = 1; i <= 3; ++i) {
        parts[i] = parseInt(parts[i]).toString(16);
        if (parts[i].length == 1) parts[i] = '0' + parts[i];
    }
    return '#' + parts.join('');
}
var color_rgb = $("#config-steps #selected-color").css( 'background-color' );
$.ajax( {
    type: "POST",
    url: sbg.ajaxurl,
    data: {
        // set default black, if not color found, else convert it by hex function
        color_rgb: color_rgb ? hexc(color_rgb) : '#000000',
        action: 'sbg_config'
    }
});

检查选择器的id。是否存在。

答案 1 :(得分:0)

在Ajax中将变量转换为String,如下所示:

$.ajax( {
    type: "POST",
    url: sbg.ajaxurl,
    data: {
        color_rgb: String(color_rgb),
        action: 'sbg_config'
    }
});