jQuery jPicker>从文本链接(而不是从jPicker)指定jPicker的颜色

时间:2010-03-22 00:41:04

标签: jquery

我有一个常用的十六进制颜色列表,我想在我的jPicker绑定输入文本字段下列出,我想弄清楚如何在不打开jPicker的情况下更改jPicker活动颜色的值颜色选择器调色板。

我设法创建了一个更新绑定到jPicker的输入字段的函数,但是background和picker.gif的颜色不会更新。我想强制更新背景颜色,就像从jPicker本身中选择颜色一样。

这是激活链接的代码......

<span onclick=doColor(1,'cc9900')>cc9900</span>

这是js处理程序

function doColor(el, color)
 {
 if(el){$('#theme_header_color').attr('value', color);}
 else{$('#theme_sidebar_color').attr('value', color);}
 }

3 个答案:

答案 0 :(得分:2)

您是否尝试在更改输入字段的值后触发键盘事件?

function doColor(el, color) {
    $('#theme_header_color').val(color).trigger('keyup');
}

答案 1 :(得分:2)

这是jPicker插件开发人员Chris Tillman。我刚刚将jPicker的新版本(V1.1.0)发布到http://www.digitalmagicpro.com/jPicker/。此新版本重新编写内部事件并重新实现先前已删除的一些请求功能。

最重要的是,对于此问题,Color对象现在是所有Color交互的事件父对象,并且可以从脚本代码中更改。旧事件模型从地图,条形图和文本字段中触发事件,然后更新其他事件。现在他们都改变了Color对象,它会触发事件。

同样在以前的版本中,从代码更改颜色对象的唯一方法是更新包含HEX值的文本字段的值并触发“keyup”事件。现在,新版本允许您只调用活动颜色对象上的“val”方法来更新颜色。

如果要更改代码中的颜色,可以直接调用Color对象。

<div id="Picker">&nbsp;</div>
<div id="Favorites">
  <span title="cc9900"/>
  <span title="e2ddcf"/>
  <span title="ffcc00"/>
</div>

然后像这样运行你的代码

$.jPicker('#Picker');
$('#Favorites span').click(
  function()
  {
    $.jPicker.List[0].color.active.val('hex', $(this).attr('title'));
  });

这会将颜色更新为“title”属性中指示的值,并更新选择器中的所有可视显示。

答案 2 :(得分:1)

对于任何好奇的人,我都有类似的问题,在我发现这个问题之前,我找到了一个有效的例子。 https://files.nyu.edu/mr2723/public/picker.html

似乎最好的方法是在页面加载时以编程方式分配click事件,而不是html“onclick”属性。

$(document).ready(function () {
    $.jPicker('#Picker');
    $('#spanID').click(function () {
        $.jPicker.List[0].color.active.val('hex', color, $(this).attr('color'));
    });
});