我正在拧一个颜色选择器,因为我找不到一个具有我想要的功能(你现在想到所有可能的功能都会被包括在内,但我找不到一个支持RGBA输出的可调节功能alpha级别)我遇到了脚本部分的问题,它将在编辑器启动时加载当前颜色。我不会厌倦你所有的代码,我会尽力保持它的基础。
首先,所有这些都在标准的$(docuemnt).ready()中,它所做的第一件事是用我的颜色选择器代码替换输入,然后它尝试运行set_color函数。
$('.rgbapicker').each(function(){
$(this).replaceWith(
'This is all the display code, it's working fine.'
)
set_color('#'+$(this).attr('name')+' ',$(this).val())
});
set_color函数接受选定的变量,它控制你使用的颜色选择器和使用tinycolor.js转换的颜色 - 一个通过toRgb()函数传递rgb alpha的修改版本(而不是只传递它)在.toRgbString()函数中。)
function set_color(selected,color){
var color = tinycolor(color).toRgb();
$(selected+'.disp_s_color_r').val(color.r); // This code
$(selected+'.disp_s_color_g').val(color.g); // Changes the
$(selected+'.disp_s_color_b').val(color.b); // Color selector
$(selected+'.disp_s_color_a').val(color.a); // Display
var color = tinycolor(color).toHsl();
console.log(selected+' - '+color.h+' - '+color.s+' - '+color.l);
var e = new jQuery.Event("click");
e.pageX = 180;
e.pageY = 180;
$('.colorbase').trigger(e);
编辑器使用你点击的hsl光谱图像,然后让鼠标协调并进行数学运算,这是一个非常基本的方法并且工作正常。当我点击编辑器时,它会正确更新(不会使用此处写的任何内容),当我点击我的重置按钮时,它会激活此功能并正常工作(它更新的选择区域的XY,突出显示您选择的颜色)但是当它在初始循环中加载时它不会触发。 set_color函数运行,并更新编辑器显示,但选择器不移动,因为该单击功能更新所有预览和写入(非隐藏)输入的颜色,所有这些都不会更新。
初始替换后循环调用和重置按钮调用之间没有区别,我甚至检查了事件和彼此的精确副本(我将它们复制到另一个程序并运行比较,它们是确切的副本)。我已经尝试过在其他类似消息中发布的理想(在谷歌搜索问题的其他地方),包括让循环模拟点击重置按钮,但没有任何效果。
有什么想法吗?我很乐意让点击正常点火,否则它将是一个代码点击模拟点击,除了使脚本更大(现在不完全修剪)之外什么都不做。
答案 0 :(得分:0)
由于 e
是一个窗口/文档事件,您是否应该在文档上而不是在颜色选择器上触发它?
正如在jQuery API上看到的那样,有两个错误:
答案 1 :(得分:0)
尝试在 replaceWith 字符串中转义撇号。
答案 2 :(得分:0)
你有一个错字;
$(this).replaceWith(
"This is all the display code, it's working fine." // all singlequotes before
)