2

我在我的 Web 应用程序中使用这个 jquery 颜色选择器插件http://www.eyecon.ro/colorpicker/ 。一切都很完美,但是当我尝试在onBeforeShow上的调色板中设置原始颜色时,它不起作用。

HTML

<div id="ncolor"></div><div id="ncolorpicker"><span id="ncpicker"></span></div>

jQuery

$("#ncolor").click(function(){
    var a = $("#ncolor").css("background-color");
    $("#ncolorpicker").show();
    $("#ncpicker").show().ColorPicker({
    flat: true,
    onBeforeShow: function () {
                  alert("yes");
                  $(this).ColorPickerSetColor(a);
    },
    });
});

我正在使用onChangeonSubmit两者都在工作,但不适用于onBeforeShow。我什至没有在onBeforeShow中收到警报消息

我需要的是在显示之前在调色板中设置#ncolor的背景颜色。为什么它甚至没有进入onBeforeShow?有人可以指导我吗?

谢谢!

4

1 回答 1

1

似乎 onBeforeShow 在平面模式下不会触发。

在平面模式下,您可以使用color属性设置初始颜色:

.ColorPicker({flat: true, color: '#00ff00'});

请注意,在 Firefox 中,$("#ncolor").css("background-color") 返回 rgb(,,) 格式的字符串。 color接受 # 个字符串 (#00ff00) 或像这样的 rgb 对象 {r: 0, g: 255, b: 0}

因此,您可能需要先进行一些转换。

此外,在您的代码中,您.ColorPicker()每次点击都会调用。这是不必要的。

相反,您可以调用.ColorPicker()一次来设置 ColorPicker。然后点击你只需要调用.ColorPickerSetColor()和你的显示/隐藏功能。

例如:

$(document).ready(function(){
    $("#ncpicker").ColorPicker({
        flat: true,
        // Initial colour here:
        color: '#0000ff'
    });
    $("#ncolor").click(function(){
        // Use your dynamic colour here - may change each time:
        $('#ncpicker').ColorPickerSetColor('#00ffff');

        // Put here your showing/hiding functionality.
    });
});

Quick example here: http://jsfiddle.net/jfrej/853bv/ (with showing & hiding taken from the http://www.eyecon.ro/colorpicker/ example).

于 2012-05-17T10:35:11.747 回答