私はjQuery ColorPickerウィジェットを使用しています-特にColorPickerSetColor関数を実行しています(内部で「setColor」のみ)。コードの抜粋:
setColor: function(col) {
if (typeof col == 'string') {
col = HexToHSB(col);
} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
col = RGBToHSB(col);
} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
col = fixHSB(col);
} else {
return this;
}
return this.each(function(){
if ($(this).data('colorpickerId')) {
var cal = $('#' + $(this).data('colorpickerId'));
cal.data('colorpicker').color = col;
cal.data('colorpicker').origColor = col;
fillRGBFields(col, cal.get(0));
fillHSBFields(col, cal.get(0));
fillHexFields(col, cal.get(0));
setHue(col, cal.get(0));
setSelector(col, cal.get(0));
setCurrentColor(col, cal.get(0));
setNewColor(col, cal.get(0));
}
});
}
ウィジェットにバグがあるようです。each() 呼び出し内で調べた場合、「col」パラメーターは未定義です。私はドキュメントと他の例を読みましたが、見つけることができるすべてのことは、 each() 呼び出しが関数を実行するときに 'col' がまだスコープ内にある必要があることを示していますが、そうではないようです...
ヘルプ?
ありがとう!