Подтвердить что ты не робот

Eyecon Colorpicker - цвет не меняется в событии click

Я использую jQuery для определения цвета eyeCon (http://www.eyecon.ro/colorpicker/).

Когда я нажимаю и перетаскиваю мышь по цветной области, цвет меняется. Но когда я просто нажимаю на цветную область, тогда цвет не обновляется.

Я выкопал его источник и нашел две функции с именем downSelector() и moveSelector(), вызываемые соответственно в mousedown и mousemove. Я просто добавил вызов moveSelector() в функцию downSelector(), передав свой собственный объект ev. Но он не работает и вызывает следующую ошибку: Uncaught TypeError: Невозможно прочитать свойство 'cal' из undefined

Возможно, это связано с тем, что объект ev для mousedown и mousemove отличается.

Но мне нужно обновить цвет на событии mousedown. Любые предложения?

заблаговременно:)

4b9b3361

Ответ 1

В colorpicker.js вы можете вызвать moveSelector из upSelector следующим образом:

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;
}, 

Этот маленький взлом работает хорошо:)