jQuery UI颜色选择器

时间:2009-06-09 16:31:53

标签: jquery jquery-ui documentation color-picker

我听说jQuery UI包含一个拾色器,但可以找到很少的文档。

它存在吗?

关于如何实施它的任何体面的文档?

我发现了这个:http://docs.jquery.com/UI/Colorpicker

但是使用:

$("#colorpicker").colorpicker();

不起作用,Firebug告诉我.colorpicker();不是方法!

它似乎工作正常,除非我把它放在一个对话用户界面,然后决定打破。

5 个答案:

答案 0 :(得分:39)

你可以在这里找到一些演示和插件。

http://jqueryui.pbworks.com/ColorPicker

答案 1 :(得分:6)

也许我已经很晚了,但到目前为止还有另一种方法可以使用jquery ui slider来使用它。

以下是它在jquery ui docs中的显示方式:

function hexFromRGB(r, g, b) {
    var hex = [
      r.toString( 16 ),
      g.toString( 16 ),
      b.toString( 16 )
    ];
    $.each( hex, function( nr, val ) {
      if ( val.length === 1 ) {
        hex[ nr ] = "0" + val;
      }
    });
    return hex.join( "" ).toUpperCase();
  }
  function refreshSwatch() {
    var red = $( "#red" ).slider( "value" ),
      green = $( "#green" ).slider( "value" ),
      blue = $( "#blue" ).slider( "value" ),
      hex = hexFromRGB( red, green, blue );
    $( "#swatch" ).css( "background-color", "#" + hex );
  }
  $(function() {
    $( "#red, #green, #blue" ).slider({
      orientation: "horizontal",
      range: "min",
      max: 255,
      value: 127,
      slide: refreshSwatch,
      change: refreshSwatch
    });
    $( "#red" ).slider( "value", 255 );
    $( "#green" ).slider( "value", 140 );
    $( "#blue" ).slider( "value", 60 );
  });
#red, #green, #blue {
float: left;
clear: left;
width: 300px;
margin: 15px;
}
#swatch {
width: 120px;
height: 100px;
margin-top: 18px;
margin-left: 350px;
background-image: none;
}
#red .ui-slider-range { background: #ef2929; }
#red .ui-slider-handle { border-color: #ef2929; }
#green .ui-slider-range { background: #8ae234; }
#green .ui-slider-handle { border-color: #8ae234; }
#blue .ui-slider-range { background: #729fcf; }
#blue .ui-slider-handle { border-color: #729fcf; }
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p class="ui-state-default ui-corner-all ui-helper-clearfix" style="padding:4px;">
  <span class="ui-icon ui-icon-pencil" style="float:left; margin:-2px 5px 0 0;"></span>
  Simple Colorpicker
</p>
 
<div id="red"></div>
<div id="green"></div>
<div id="blue"></div>
 
<div id="swatch" class="ui-widget-content ui-corner-all"></div>

答案 2 :(得分:2)

确保您的页面上包含jQuery UI base和颜色选择器小部件(以及jQuery 1.3的副本):

<link rel="stylesheet" href="http://dev.jquery.com/view/tags/ui/latest/themes/flora/flora.all.css" type="text/css" media="screen" title="Flora (Default)">

<script type="text/javascript" src="http://dev.jquery.com/view/tags/ui/latest/ui/ui.core.js"></script>

<script type="text/javascript" src="http://dev.jquery.com/view/tags/ui/latest/ui/ui.colorpicker.js"></script>

如果您有这些内容,请尝试发布您的来源,以便我们了解正在发生的事情。

答案 3 :(得分:1)

在处理自动完成时,使用jQuery会遇到同样的问题(不是方法)。似乎代码是在加载autocomplete.js之前执行的。因此,在调用colorpicker之前,请确保已加载ui.colorpicker.js。

答案 4 :(得分:1)

这是因为您在加载插件之前尝试访问该插件。你应该尝试通过以下方式加载DOM来调用它:

$(document).ready(function(){
    $("#colorpicker").colorpicker();
}