eyecon Colorpicker - 在点击事件中颜色不变

sai*_*y2k 10 color-picker click jquery-plugins

我正在使用基于jquery的eyeCon颜色选择器(http://www.eyecon.ro/colorpicker/).

当我单击并将鼠标拖到彩色区域上时,颜色会发生变化.但是当我点击彩色区域时,颜色不会更新.

我挖掘了它的源代码,发现了两个名为downSelector()和moveSelector()的函数分别在mousedown和mousemove上调用.我刚刚在downSelector()函数上添加了对moveSelector()的调用,传递了自己的ev对象.但它不起作用并抛出以下错误:未捕获的TypeError:无法读取未定义的属性'cal'

这可能是因为mousedown和mousemove的ev对象不同.

但我需要更新mousedown事件的颜色.有什么建议?

提前致谢 :)

小智 19

在colorpicker.js,你可以调用moveSelectorupSelector这样的:

moveSelector = function (ev) {
  change.apply(
  ev.data.cal.data('colorpicker').fields.eq(6)
    .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
    .end().eq(5).val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
    .get(0),[ev.data.preview]
  );
  return false;
},

upSelector = function (ev) {

  moveSelector(ev);

  fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
  fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
  $(document).unbind('mouseup', upSelector);
  $(document).unbind('mousemove', moveSelector);
  return false;
}, 
Run Code Online (Sandbox Code Playgroud)

这个小黑客很好:)

  • 实际上,只需从`upSelector()`中调用`moveSelector(ev)`函数就可以正常工作,无需复制粘贴整个代码 (8认同)
  • 对于色调变换器,调用moveHue(ev); 在功能upHue. (3认同)