我已经安装了jPicker并运行良好;它是一个非常漂亮的脚本。
但是,它返回到我的输入框的值是8位十六进制。我需要它返回6位十六进制。
与其将8位数字后处理成6位,不如只是破解脚本并强制使用6位数字。或者,我可以挂接到jPicker的change事件上,以拦截其发送到输入元素的值,并在用十六进制更新输入之前在那里进行转换。
这是我的代码:
$(function() {
$('#myThemeColor').jPicker(); /* Bind jPicker to myThemeColor input */
$("#carousel").jCarouselLite({
btnNext: ".next",
btnPrev: ".prev",
visible: 6,
speed: 700
});
这是我用来拦截myThemeColor输入的change事件的代码,但根本没有触发。
$('#myThemeColor').change(function()
{
alert(this.val()); /* does not fire on any action */)
if($(this).val().length == 8)
{
$(this).val(function(i, v)
{
return v.substring(0, 6);
});
}
});
最佳答案
如果您使用输入,则使用像这样的回调将做到这一点:
$('#myThemeColor').jPicker({},
function(color) { $(this).val(color.get_Hex()); },
function(color) { $(this).val(color.get_Hex()); });
);
这将获取十六进制值,并将其设置为当您单击“确定”并在选择器中对其进行更改时生效的值。如果您不希望第二功能启用,请关闭它。