CKEditor自定义按钮,找了很多篇教程,都说的不清不楚的,现参考官方文档,在此记录下开发过程。
使用forEach循环异步函数时,会先整个循环一遍,然后再输出异步函数的结果,这样就没法在循环结束后拿到异步函数的结果,正确的写法应该是用递归方法,等待异步函数执行完毕后才进入下一次循环。下面是两种写法的执行结果。
实现方法很简单,将总数计算出来显示到title,title显示位置调整到饼图中间,设置zlevel属性置于底层;鼠标悬停时显示的label也显示在饼图中间,调整背景色及边距, 设置zlevel属性 置于title上方,鼠标悬停时显示label就会遮挡住title。
promise实例
let $http = {
post:function(url,params){
let promise = new Promise(function(resolve, reject){
$.ajax({
url:url,
method:'post',
data:params?params:null,
complete:function(res){
if(this.status === 200 || this.status === 304) {
resolve(res);
} else {
reject(new Error(this.statusText));
}
}
});
});
return promise;
}
};
调用:
$http.post('http://url.com').then((res)=>{
if(res.success==true) {
console.success(res;
}
})
.catch((err)=>{
console.error(err);
});
遇到一个诡异的错误 :Maximum call stack size exceeded,后来发现是使用了BootstrapValidator插件之后引起的,以为是跟其它某个插件冲突,于是页面上只留下表单和BootstrapValidator插件,依然报这个错误。