1、 Maximum call stack size exceeded 出现的原因
- 可能是陷入死循环了;考虑递归调用中是否有结束的条件;
- js的事件冒泡;
事件冒泡:当一个元素接收到事件的时候,会把接收到的事件传给自己的父级,一直到window;(注意这里传递的仅仅是事件,并不传递所绑定的事件函数;所以如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现,但事件确实传递了)
2、动态设置echarts的series以及legend?
function oneOption(priceArray,seriesArry,weekArry){
// 必须用js语法不能用jquery
var myChart = echarts.init(document.getElementById("runChart"));
option = {
tooltip: {
trigger: 'axis'
},
legend: {
y:'bottom',
data:[]
},
toolbox: {
show: true
},
xAxis: {
axisTick: {
show: false
},
type: 'category',
data: weekArry
},
yAxis: {
type: 'value'
},
series: seriesArry
};
myChart.setOption(option);
var option1=myChart.getOption();
var legend={
y:'bottom',data:priceArray};
option1.legend=legend;
myChart.setOption(option1,true);
}
function one(reportName,subject,price1,price2) {
jp.post("${ctx}/getData?reportName="+reportName,function(data){
var data = eval("("+data+")");
var priceArray = ['销售价','收购价'];
var seriesArry = [];
for (var j = 0;j < priceArray.length; j++) {
seriesArry[j] = {
name: priceArray[j],
type:'line',
data: data.list[j].dataList
};
}
var weekArry = data.list[0].weekList;
oneOption(priceArray,seriesArry,weekArry);
});
}
3、jq绑定、触发、移除事件?
// 绑定一个或多个事件
$("div").bind("mouseover mouseout",function(){
...});
$("#periods").click(function(){
...});
// 绑定一次点击后就失效的事件
$("#periods").one("click",function(){
...});
// 触发事件(trigger方法触发被选元素的指定事件类型)
$('#btn').trigger("click");
// 移除之前绑定的所有click事件
$("#periods").unbind("click");
// 移除所有
$('#btn').unbind();
// 取消绑定test函数
$('div').unbind('click', test);
// 场景:
// 使用这个在于一个下拉框不同的下拉选项,另外一个input对应不同的点击事件
// 绑定事件前都先移除事件,因为click不能绑定多个方法
// 但是不能使用one,因为可能多次点击,但是都需要有事件
4、使用JQuery获取被选中的checkbox的value值?参考
<html>
<head>
<meta charset="gbk">
<!-- 引入JQuery -->
<script src=