问题描述
|
我正在使用基于jquery的eyeCon颜色选择器(http://www.eyecon.ro/colorpicker/)。
单击并在彩色区域上拖动鼠标时,颜色正在改变。但是,当我仅单击彩色区域时,该颜色就不会更新。
我挖掘了它的源代码,发现分别在mousedown和mousemove上调用了两个名为downSelector()和moveSelector()的函数。我刚刚在downSelector()函数上添加了对moveSelector()的调用,并传递了自己的ev对象。但是它不起作用,并引发以下错误:
未捕获的TypeError:无法读取未定义的属性\'cal \'
可能是因为mousedown和mousemove的ev对象不同。
但是我需要在mousedown事件上更新颜色。有什么建议么?
提前致谢 :)
解决方法
在colorpicker.js中,您可以像这样从ѭ1中调用
moveSelector
:
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,(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;
},
这个小技巧很好用:)