d3
2020/8/2 14:21:28
原因产生:插件内部初始化的参数默认传入当前日期作为结束值endXXX,我们自定义时同样把当前日期作为开始值beginXXX,导致插件createDateYMD函数在type == "month"时判断出现了开始值大于结束值,但是渲染dom时按照for循环的i++模式取不到值。if (type == "month") {
unitName = "月";
dataStyle = "data-month";
beginNum = that.beginMonth;
endNum = 12;
if (yearTag != that.beginYear) {
beginNum = 1
}
if (yearTag == dateopts.endYear) {
endNum = that.endMonth
}
}
for (var i = beginNum; i <= endNum; i++) {
str += "
" + that.dateForTen(i) + unitName + ""}
格式化源码并查看,如下:includeCss("Mdate/needcss/Mdate.css");
var dateopts = {
beginYear: 2000,
beginMonth: 1,
beginDay: 1,
endYear: new Date().getFullYear(),
endMonth: new Date().getMonth() + 1,
endDay: new Date().getDate(),
format: "YMD"
}
解决办法一:
去除插件初始化endXXX的动态日期为固定日期var dateopts = {
beginYear: 2000,
beginMonth: 1,
beginDay: 1,
endYear: 2099,
endMonth: 1,
endDay: 1,
format: "YMD"
};
解决办法二:
渲染dom结构的for循环先判断下初始月份和结束月份值的大小,按照i++从小到大的顺序写