【问题标题】:jQuery jPicker > Assign color of jPicker from a text link (not from jPicker)jQuery jPicker > 从文本链接(不是来自 jPicker)分配 jPicker 的颜色
【发布时间】:2010-03-22 00:41:04
【问题描述】:

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

我设法创建了一个函数来更新绑定到 jPicker 的输入字段,但背景和 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);}
 }

【问题讨论】:

    标签: jquery


    【解决方案1】:

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

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

    【讨论】:

    • 不。但这正是我所缺少的。谢谢抖动!
    【解决方案2】:

    我是 Chris Tillman,jPicker 插件的开发者。我刚刚将 jPicker 的新版本(V1.1.0)发布到http://www.digitalmagicpro.com/jPicker/。这个新版本对内部事件进行了重新设计,并重新实现了一些以前被删除的请求功能。

    对于这个问题最重要的是,Color 对象现在是所有 Color 交互的事件父级,并且可以通过脚本代码进行更改。旧的事件模型从地图、栏和文本字段中触发事件,然后更新其他的。现在它们都改变了 Color 对象,从而触发事件。

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

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

    <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”属性中指示的值,并更新选择器中的所有视觉显示。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-08-27
        • 2012-09-14
        • 2012-12-22
        • 1970-01-01
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2012-07-02
        • 2014-07-09
        相关资源
        最近更新 更多