问题:在拼接的table里,onclick调用一个function,传过去的参数为String类型,到function里面接收到的为number类型。
原因:参数全为数字,js全数字默认为number。但是js里int(number)类型长度为15位,传的参数为18位,导致15位后面的精度失去。
解决:onclick调用的方法如下:
οnclick="showDetail("'+caseInfo.caseDataId+'")" //在前后面加 ",即用" "括起来
代码如下:
function addTab(element, title, id, code, level) { var result =''; $.getJSON('/case/data/dept/list', {'code': code, 'level': level}, function (data) { console.log(data); result += '<div class="m-list">\n' + ' <div class="bd">\n' + ' <div class="wrap">\n' + ' <table lay-filter="table_tool">\n' + ' <thead>\n' + ' <tr>\n' + ' <!--<th>序号</th>-->\n' + ' <th>提交人</th>\n' + ' <th>状态</th>\n' + ' <th>事项名称</th>\n' + ' <th>受理单位名称</th>\n' + ' <th>受理时间</th>\n' + ' <th>承诺办结时间</th>\n' + ' <th>实际办结时间</th>\n' + ' <th>是否收费</th>\n' + ' <th>事项状态</th>\n' + ' <th>操作</th>\n' + ' </tr>\n' + ' </thead>\n' + ' <tbody>\n'; for (var i in data) { var caseInfo = data[i]; var charge = caseInfo.charge?"是":"否"; result += ' <tr>\n' + ' <td style="width:85px;">'+caseInfo.submiter+' </td>\n' + ' <td style="width:50px;"><img src="/assets/img/control/state-'+level+'.png" alt=""></td>\n' + ' <td style="width:230px;"><a href="#">'+caseInfo.caseDefinitionName+'</a></td>\n' + ' <td style="width:150px;">'+caseInfo.deptName+'</td>\n' + ' <td style="width:120px;">'+caseInfo.acceptTime+' </td>\n' + ' <td style="width:120px;">'+caseInfo.commitmentDate+'</td>\n' + ' <td style="width:120px;">'+caseInfo.completeTime+'</td>\n' + ' <td style="width:80px;"> '+charge+'</td>\n' + ' <td style="width:110px;">'+caseInfo.caseDataState+'</td>\n' + ' <td><a class="layui-btn layui-btn-mini layui-btn-normal" οnclick="showDetail("'+caseInfo.caseDataId+'")" style="color: white">查看</a></td>\n' + ' </tr>\n'; } result += ' </tbody>\n' + ' </table>\n' + ' </div>\n' + ' </div>\n' + '</div>'; //新增一个Tab项 element.tabAdd('lay-tab', { title: title + '<i class="layui-icon layui-unselect layui-tab-close">ဆ</i>', //用于演示 content: result, id: id }); //增加点击关闭事件 var r = $(".layui-tab-title").find("li"); //每次新打开tab都是最后一个,所以只对最后一个tab添加点击关闭事件 r.eq(r.length - 1).children("i").on("click", function () { element.tabDelete("lay-tab", $(this).parent("li").attr('lay-id')); }), element.tabChange("lay-tab", r.length - 1); element.init(); element.tabChange("lay-tab", id); }); }
function showDetail(caseDataId) { console.log("detail:" + caseDataId) layer.open({ type: 2, area: ['90%', '90%'], fix: false, //不固定 maxmin: true, shade:0.4, title: '办件详情', content: '/case/'+caseDataId+'/detail' }); }