我已经安装了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()); });
);


这将获取十六进制值,并将其设置为当您单击“确定”并在选择器中对其进行更改时生效的值。如果您不希望第二功能启用,请关闭它。

09-07 22:58