[英]How to avoid firing Onchange event when color picker setvalue programitically
我想以编程方式设置颜色选择器的值,而不会在发生更改事件时触发Colorpicker
注意:我在更改事件下正在执行一些特定的代码,但是在从代码设置值之后,无需执行那些代码块
我已经尝试过e.stoppropagation和e.preventdefault但最终没有运气
function resetColor(){
//Some code...
$("#" + affectColorAreaId).colorpicker('setValue', defaultValue);
//Some code...
}
您可以使用.data
方法来检查它是否来自重置事件,并相应地设置或删除它的值,不过我在文档中找不到任何内容。 考虑以下:
const defaultValue = '#000000'; $('#picker').colorpicker({}).on('changeColor', function(event) { if (!$(this).data('isFromReset')) console.log('from color change!'); else $('#picker').removeData('isFromReset'); }); function reset() { console.log('from reset!'); $('#picker').data('isFromReset', true).colorpicker('setValue', defaultValue); }
.as-console-wrapper { max-height: 50px !important; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-colorpicker/2.5.3/js/bootstrap-colorpicker.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-colorpicker/2.5.3/css/bootstrap-colorpicker.css" rel="stylesheet" /> <input id="picker" /> <button onclick="reset();">reset</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.