【问题标题】:jquery color picker pluginjquery 颜色选择器插件
【发布时间】:2012-05-17 08:22:49
【问题描述】:

我在我的 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);
    },
    });
});

我正在使用 onChange,onSubmit 都可以工作,但不能用于 onBeforeShow。我什至没有在 onBeforeShow 中收到 警报消息。

我需要的是在显示之前在调色板中设置 #ncolor 的 background-color。为什么连onBeforeShow都没有进入?谁能指导我?

谢谢!

【问题讨论】:

  • 你用的是什么浏览器? IE 可能会在最后一个逗号 } 处中断,
  • 它不适用于任何浏览器。我检查了它:(
  • 嗯...也许你在上面的例子中错过了一行,但你没有关闭点击处理程序——你需要另一个});
  • 对不起@jfrej,这是我在这里做的一个错误,而不是在我的实际代码中

标签: javascript jquery html css jquery-plugins


【解决方案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() 来设置颜色选择器。然后点击你只需要调用.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.
    });
});

这里的快速示例:http://jsfiddle.net/jfrej/853bv/ (显示和隐藏取自 http://www.eyecon.ro/colorpicker/ 示例)。

【讨论】:

  • 不,它只在第一次工作。我想在点击和更改时设置 colopickersetcolor。
  • “不,它只在第一次工作。” - 什么工作? onBeforeShow?
  • 如何避免每次点击调用 .ColorPicker()?
  • 当我单击#ncolor 时,它显示了我在颜色属性中给出的正确颜色,但是当我关闭并第二次单击时,颜色从初始颜色发生变化#00ff00
  • 我想为每次点击设置 $("#ncolor").css("background-color") 十六进制值,它必须自动更改。但我不能像他们在这里展示的那样eyecon.ro/colorpicker/#colorpickerField1
猜你喜欢
  • 2011-02-16
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 2012-11-10
相关资源
最近更新 更多