201805问题总结

ehcarts 数据图重新加载后数据合并


项目:《云乐道后台-数据统计分析》

问题:页面加载时先显示了一部分数据,筛选后再重载数据图原来的数据也在

分析:echarts默认会合并数据

解决办法: chart.setOption(option, true)

chart.setOption(option, notMerge, lazyUpdate)

option:图表的配置项和数据,具体见配置项手册。

notMerge:可选,是否不跟之前设置的option进行合并,默认为false,即合并。

lazyUpdate:可选,在设置完option后是否不立即更新图表,默认为false,即立即更新。

silent:可选,阻止调用 setOption 时抛出事件,默认为false,即抛出事件。

float 型数据相加后结果有误差


项目:《os数据统计》

问题:float型数据相加后结果会有一些误差

分析:因为js计算精度的问题,浮点型数据相加减都会有误差

解决办法:定义一个变量,存放每次相加产生的误差,在上一次结果和这一项相加之前先减去上次产生的误差,再相加就是没有误差的结果,之后再将此次相加产生的误差赋值给c

代码:

function arrSum(list) {

var len = list.length

var res = 0.0

// 定义c为浮点数相加产生的误差

var c = 0.0

for (var i = 0; i < len; i++) {

// 减去上一次产生的误差

var y = list[i] - c

var t = res + y

// 此次相加后产生的误差

c = (t - res) -y

res = t

}

return res

}

切换选项卡后需要重新加载 echarts


项目:《os数据统计》

问题:切换选项卡后,只有默认显示的那个选项卡页面有图表,其他切换后都没有

解决办法: 切换选项卡后需要重新加载echarts

代码:

$(‘#tab input’).click(function() {

var index = $(“#tab input”).index(this)

$(this).addClass(“active obtn btn-lg”).siblings().removeClass(“active obtn btn-lg”)

$(“.tab-content>div”).eq(index).addClass(“select”).siblings().removeClass(“select”)

pubChart.resize()

areaChart.resize()

overYearsChart.resize()

})

城市区域等数据是 ajax 来的,所以给这些数据写事件要放到渲染函数中,渲染完成后再执行,因为异步


项目:《os数据统计》

问题:为页面ajax请求回来渲染的数据元素写事件不起作用,sources里查看元素是undefined

分析:页面数据是ajax异步请求回来的,所以在执行事件的时候还没有成功渲染元素

解决办法: 把相应事件写在渲染函数中

点击子元素会触发父元素事件,为子元素写阻止冒泡方法


项目:《portal页》

场景:为弹出遮罩层写事件,当点击遮罩层空白处时遮罩层消失,但点击遮罩层上的表单不消失

问题:当点击遮罩层上的表单时,遮罩层也会消失,

分析:这是因为子元素会为遮罩层写消失事件时会触发冒泡事件,所以要为子元素写阻止冒泡方法

解决方法:

stopBubble(e) {

e.stopPropagation(); //阻止冒泡

},

alert()一个拼接字符串结果是 NaN


项目:《portal页》

问题:alert一个拼接字符串 alert(‘请输入正确的手机号或带区号的电话号码!区号和电话号码之间可无连接符或用’-‘连接’) 结果是NaN

分析:alert内外层字符串与内层字符串同使用单引号引用,导致js从’-‘处解析,将’-‘前边的视为一个字符,减号后边的视为一个字符,将’-'视为减号,所以结果才会是NaN

解决办法:内层字符串与外层字符串不要相同

alert(“请输入正确的手机号或带区号的电话号码!区号和电话号码之间可无连接符或用’-'连接”)

jquery寻找父元素及父级元素


项目:《os数据统计》

问题:使用parent寻找元素的非直接父元素找不到

分析:parent是寻找元素的直接父元素,寻找元素的非直接父元素使用Parents

jquery为追加元素添加事件


项目:《os数据统计》

问题:为append方法添加进去的元素写事件,有的时候没有响应,有的时候只响应一次

分析:jquery动态添加的元素要使用on进行绑定,但监听的时候不能监听动态的,要监听静态元素(动态元素的父元素,body等)

解决办法:

$(‘body’).on(‘click’, element, function() {

})

设置单元格宽度不起作用


项目:《os数据统计》

问题:在td中使用width设置table的单元格宽度不起作用

分析:表格默认布局为自动布局,在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。
解决办法:为table设置 table-layout属性为fixed;

基础面试题

主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等

t, function() {

})

设置单元格宽度不起作用


项目:《os数据统计》

问题:在td中使用width设置table的单元格宽度不起作用

分析:表格默认布局为自动布局,在自动表格布局中,列的宽度是由列单元格中没有折行的最宽的内容设定的。
解决办法:为table设置 table-layout属性为fixed;

基础面试题

主要内容包括:HTML,CSS,JavaScript,浏览器,性能优化等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值