我有一个常用的十六进制颜色列表,我想在我的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);}
}
答案 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"> </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'));
});
});