0428_js作用域错误记录

写在开头的是一些近来生活的感概。首先,恭喜一起公考的小C,成功通过了广州市考笔试面试,在市直的房产交易中心上班,那个白白胖胖的姑娘,文采斐然,原来的志向是考中山大学的中文系的研究生,后来失败了才转战公考,省考报的是老家的地税,现在人家直接就去广州找他的孙同学了;其次,是公司搬家的小Z,说来神奇,她一个做测试的,从长沙到广州,公司规模越来越大,只是加班依然非常严重,昨晚聊天还在说半个月没休息,每晚到12点;接着是小M,前端的妹子,在深圳,公司不到10人,一直跟我说跳槽,但是我感觉她工资水平还可以额,每个月还要养弟弟。。
接下来说的就是苦命的依然在长沙装逼的小J和我啦。我们两个真是,毕业到现在一直都觉得生活可怕。。最近她拿着很低的工资正学着室内设计,而我一头乱转在试图整理我学过的东西。。
好吧,每当生活不如我意的时候,我老是懒得写,懒得描述,懒得反思成因,倒是津津有味的记录起别人的生活事迹。诶,迷。
言归正传啦。
实现一个tab页签查询,然后把总数显示在后面的功能。
效果如下图:
最后的效果显示查询结果数量
第一次纠结写的代码,发现数字的位置根本没动,然后一进入页面显示的是所有状态的页面

dict.getDictDatasByTypes('TRAVEL_PROD_STATUS,TRAVEL_PROD_TYPE');
var grid_selector = "#schedule-grid-table";
var pager_selector = "#schedule-grid-pager";
//愿意是想初始化productStatus,实现点击页面就可以得到val为0的状态数据,并且把0赋值给input
	var productStatus = $("#selected-status").val();
	if(productStatus==''||productStatus==undefined){
        productStatus =0 ;
	$("#selected-status").val(productStatus);
}
jQuery(function($) {
    $('.chosen-select').chosen({allow_single_deselect:true});
    var checkbox = '';
    var colNames = [ ""+checkbox, "产品编号", "类型", "产品名称", "供应商", "出发地", "目的地","行程天数","销售时间","是否推荐","状态","操作" ];
    var gridData =...
    jQuery(grid_selector).createTable({
        subGrid : false,
        url: ctx + "/travel/product/getTravelProductData.do?rand="+Math.random(),
        //增加状态的初始化查询,以前是没有这个字段的,因为一进入页面就是默认所有状态
        postData:{'status':productStatus},
        colNames: colNames,
        colModel: gridData,
        viewrecords : true,
        rowNum : 20,
        rowList : [ 20, 40, 60 ],
        pager : pager_selector,
        altRows : true,
        loadComplete: function () {
                        //这是回调,利用回调获取不同状态的数量,然后写在html上,显示出来。
			var rowNum = $("#schedule-grid-table").jqGrid('getGridParam','records');
                        var status = productStatus;
                        $("#sum-"+status).html("("+rowNum+")");
        }
    });
    $('.input-daterange').datepicker({autoclose: true, format: 'yyyy-mm-dd', language: 'zh-CN'});
   ...
});
function searchOne(productStatus) {
//根据点击传值给status到后台查询,并且写到input值里面去
    var status = $("#selected-status").val();
    if(productStatus==6){
        $("#selected-status").val("");
        status='';
    }else {
        status=productStatus;
        $("#selected-status").val(productStatus);
    }
   ...
    jQuery(grid_selector).setGridParam({
        url : ctx + "/travel/product/getTravelProductData.do?rand="+Math.random(),
        postData : {
            'name' :name,
            'status' : status,
            'type' : type,
            'prodNo':proNo,
            'departPlace' :departPlace,
            'destination':destination,
            'saleStartTime':saleStartTime,
            'saleEndTime':saleEndTime,
            'supplier':supplier
        }
    }).trigger("reloadGrid");
}

最后的调试后的代码:

dict.getDictDatasByTypes('TRAVEL_PROD_STATUS,TRAVEL_PROD_TYPE');
var grid_selector = "#schedule-grid-table";
var pager_selector = "#schedule-grid-pager";
//初始化
var productStatus;
jQuery(function($) {
    $("#selected-status").val("0");
    productStatus=$("#selected-status").val();
    $('.chosen-select').chosen({allow_single_deselect:true});
    var checkbox = '';
    var colNames = [ ""+checkbox, "产品编号", "类型", "产品名称", "供应商", "出发地", "目的地","行程天数","销售时间","是否推荐","状态","操作" ];
    var gridData = ...
    jQuery(grid_selector).createTable({
        subGrid : false,
        url: ctx + "/travel/product/getTravelProductData.do?rand="+Math.random(),
        postData:{'status':productStatus},
        colNames: colNames,
        colModel: gridData,
        viewrecords : true,
        rowNum : 20,
        rowList : [ 20, 40, 60 ],
        pager : pager_selector,
        altRows : true,
        loadComplete: function () {
            var rowNum = $("#schedule-grid-table").jqGrid('getGridParam','records');
            var status = $("#selected-status").val();
            $("#sum-"+status).html("("+rowNum+")");
        }
    });
    $('.input-daterange').datepicker({autoclose: true, format: 'yyyy-mm-dd', language: 'zh-CN'});
    })
});

function searchOne(mark) {
    var status = productStatus;
    if(mark==6){
        status='';
        $("#selected-status").val("");
    }else {
        status=mark;
        $("#selected-status").val(mark);
    }
    ...
    jQuery(grid_selector).setGridParam({
        url : ctx + "/travel/product/getTravelProductData.do?rand="+Math.random(),
        postData : {
            'name' :name,
            'status' : status,
            'type' : type,
            'prodNo':proNo,
            'departPlace' :departPlace,
            'destination':destination,
            'saleStartTime':saleStartTime,
            'saleEndTime':saleEndTime,
            'supplier':supplier
        }
    }).trigger("reloadGrid");
}

一整天都不开心,结果最后终于做出来了,好吧,console的F10断点调试很好用的,让我看明白了什么时候有什么值。。回去再反省,先搭高铁回家先

原文地址:https://www.cnblogs.com/missYuLan/p/6782266.html