需求:
設置一個按鈕,動態隱藏或展示數據表格的列。默認隱藏部分列,點擊按鈕進行顯示,再次點擊就隱藏。
基於 layui 的數據表格。
代碼:
綁定按鈕事件。
這里需要設置的列比較多,表格字段名格式:d1_roi、d1_ltv、d2_roi、d2_ltv...
原理:先清除每列的 layui-hide 的 class,然后給當前列每個格子加上固定寬度即可。
1 //拓展列切換 2 $(".js-showhide").click(function(){ 3 var roi_key = ''; 4 var ltv_key = ''; 5 var roi_cell_key = ''; 6 var ltv_cell_key = ''; 7 var days = [2,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,40,50,60,70,80,90]; 8 9 $.each(days, function (key, d) { 10 //每一列的 key 11 roi_key = "[data-field='d"+d+"_roi']"; 12 ltv_key = "[data-field='d"+d+"_ltv']"; 13 14 //每個單元格的 類 15 roi_cell_key = 'laytable-cell-' + $(roi_key).attr('data-key'); 16 ltv_cell_key = 'laytable-cell-' + $(ltv_key).attr('data-key'); 17 18 //LTV 列 19 if($(ltv_key).hasClass('layui-hide')){ 20 $(ltv_key).removeClass('layui-hide'); 21 $('.' + ltv_cell_key).css('width', '70px'); 22 }else{ 23 $(ltv_key).addClass('layui-hide'); 24 } 25 26 //ROI 列 27 if($(roi_key).hasClass('layui-hide')){ 28 $(roi_key).removeClass('layui-hide'); 29 $('.' + roi_cell_key).css('width', '70px'); 30 }else{ 31 $(roi_key).addClass('layui-hide'); 32 } 33 }); 34 });