通过javascript修改时,onchange不会触发
我正在使用频谱( https://github.com/bgrins/spectrum ),一个用于彩色托盘的jQuery插件。 我的目标是将颜色直接应用于背景,同时用户正在浏览不同的颜色。
到目前为止我所拥有的是:
//*****Part of a 3rd party file, which I cannot modify**** $("#picker1").spectrum({ allowEmpty:true, color: "#ECC", showInput: true, preferredFormat: "hex", }); //*********************************** $("#picker1").on("change keyup paste", function(){ newcolor=$("#picker1").val(); $(".menu-itempreview").css("background-color", newcolor); });
在这里小提琴: http : //jsfiddle.net/h4Lc5b6a/
问题是,颜色仅在用户点击提交按钮时更新。 我怎样才能做到这一点,以便在用户浏览不同颜色的同时动态更新背景?
似乎问题在于onchange,当javascript修改输入字段时,它不会触发。
您可以使用move
回调( http://bgrins.github.io/spectrum/#events-move )。
添加到频谱初始化:
$("#picker1").spectrum({ //..., move: function(color) { $(".menu-itempreview").css("background-color", color.toHexString()); } });
您也可以在频谱初始化后使用它 :
// Alternatively, they can be added as an event listener: $("#picker").on('move.spectrum', function(e, tinycolor) { }); $("#picker").on('show.spectrum', function(e, tinycolor) { }); $("#picker").on('hide.spectrum', function(e, tinycolor) { }); $("#picker").on('beforeShow.spectrum', function(e, tinycolor) { });