无法让光谱颜色选择器工作

Posted

技术标签:

【中文标题】无法让光谱颜色选择器工作【英文标题】:unable to get spectrum colorpicker working 【发布时间】:2013-04-26 10:23:01 【问题描述】:

我正在尝试实现光谱颜色选择器http://bgrins.github.io/spectrum/

我在与 html 文件相同的文件夹中有频谱 css 文件和频谱 js 文件以及 jquery 1.9.0 文件。

我得到的只是屏幕上的一个输入框,没有颜色选择器。我已经在 firefox/chrome 和 IE 中尝试过,但没有。

我看不到任何地方说我需要任何其他文件

任何人都可以帮忙,因为我认为这可能非常明显

这是html文件的代码

<!DOCTYPE html>
 <html>
 <meta charset="utf-8" />
 <head>
   <link rel="stylesheet" type="text/css" href="spectrum.css ">
   <script type="text/javascript" src="jquery-1.9.0.js"></script>
   <script type="text/javascript" src="spectrum.js"></script>
   <script>
     $(".my_color").spectrum(
        color: "#f00"
     );
   </script>
  </head>

  <body>
   <input type='text' class="my_color" />
  </body>
  </html>

【问题讨论】:

尝试将&lt;script&gt;放在页面末尾或使用$(document).ready(function() ...script here... ); 【参考方案1】:

确保在 DOM 完成加载后调用您的脚本,例如,

$(document).ready(function() 
   $(".my_color").spectrum(
      color: "#f00"
   );
);

使用正确的执行顺序可以正常工作:http://jsfiddle.net/xqdBd/

请注意:http://jsfiddle.net/xqdBd/1/ 不再起作用,因为在 DOM 完成加载之前调用了 JavaScript。

这里还有一个问题:

<link rel="stylesheet" type="text/css" href="spectrum.css ">

请注意"spectrum.css " 末尾的额外空间,或者您的 JavaScript 文件没有被加载。没有看到你正在使用的页面是不可能知道的。

【讨论】:

我发现js $(".my_color").spectrum( color: "#f00" );需要离开输入并现在工作 @BarryWatts 它不必去追求。这只是意味着它会在之后进行评估。 $(document).ready() 仍然是一个很好的做法,因为您可以确保在加载 JavaScript 之前完成 DOM,并且您的 JavaScript 可以在页面上的任何位置移动。 Just to add $(function());$(document).ready( function()); 的简写【参考方案2】:

js

$(".my_color").spectrum(
    color: "#f00"
);

必须去输入框后面

【讨论】:

如上述答案所述,它不必放在受影响的元素之后。它必须在页面上加载输入后评估

以上是关于无法让光谱颜色选择器工作的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 颜色 **Swatch** 选择器

频谱颜色选择器在 Internet Explorer 中不起作用

无法在同一页面上显示多个 jPicker 颜色选择器

在 Java 中将颜色选择器添加到面板

Android 颜色渲染 颜色选择器 ColorPickerDialog剖析

如何使用颜色选择器(滴管)?