layui单元格可编辑、layui单元格插入select、

本文介绍了如何在layui表格中实现单元格编辑功能,通过在cols中添加edit属性,并提供了select下拉框的插入方法。同时,分享了监听单元格编辑的事件处理,以及解决因事件冒泡导致的问题。此外,提到了数据共享配置页面中因ID重复导致的页面功能错乱问题,强调了前端开发中避免ID冲突的重要性。
摘要由CSDN通过智能技术生成
记录下最近工作中遇到一些容易忘记的知识点

在这里插入图片描述
想要layui的表格可编辑,只需要在cols中加入edit即可:

tableIns = table.render({
            elem: '#buildInputTable',
            data: arr,
            page: false,
            limit: Number.MAX_VALUE,
            height: 300,
            id: 'buildInputTable',
            cols: [
                [{
                        field: 'inputParamName',
                        title: '参数名称',
                        align: 'center',
                        edit: 'text'
                    },
                    {
                        field: 'inputParamNameCn',
                        title: '中文名称',
                        align: 'center',
                        edit: 'text'
                    },
                    {
                        title: '是否必选',
                        align: 'center',
                        templet: '#inputSel'
                    },
                    {
                        title: '类型范围',
                        align: 'center',
                        templet: '#inputType'
                    },
                    {
                        field: 'remarks',
                        title: '备注说明',
                        align: 'center',
                        edit: 'text'
                    },
                    {
                        title: '删除',
                        toolbar: '#inputBuildeDel',
                        align: 'center'
                    }
                ]
            ],
 })

插入select下拉框:
select模板

<script type="text/html" id="inputType">
    <select name="inputParamType"  lay-filter="inputParamType">
        <option value="Int">Int</option>
        <option value="String">String</option>
        <option value="Long">Long</option>
        <option value="Number">Number</option>
        <option value="Double">Double</option>
        <option value="Date">Date</option>
        <option value="Boolean">Boolean</option>
        <option value="Char">Char</option>
        <option value="Blob">Blob</option>
        <option value="Clob">Clob</option>
    </select>
</script>

在cols使用 templet: '#inputType(模板的id)',再调整样式即可。

监听单元格的编辑:

table.on('edit(buildInputTable)', function(obj){
	   var value = obj.value //修改后的值
	   ,data = obj.data //得到所在行所有键值
	   ,field = obj.field, //更改的到字段
	   $this = $(this),
	   tr = $this.parents('tr'),
	   trIndex = tr.data('index'); //表格tr的行号(index值)
 });

ps:上面监听表格的方法,我也是在网上找到的,但用在实际项目中发现,trIndex似乎得到的值不是很准确。如果需要对表格添加删除功能,当删除其中某一行时,trIndex值没有改变,因为删除时表格没有重新刷新。
table.cache[‘buildInputTable’]:
表示获取id为buildInputTable表格所有的值

在layui表格渲染时,done函数可以在表格渲染前对select设置默认值:

// 每次表格重载时都能保持select的值
 layui.each($("select[name='isNecessary']"), function (index, item) {
     var elem = $(item);
     elem.val(默认值); //设置默认值
     form.render();
 });

select设置的是对应value值才会生效哦.

关于事件冒泡

笔者从零开始写了一个具有父子级关系的穿梭框,在点击左右穿梭按钮时,会出现点击一次按钮,穿梭多次的情况,想了许久才恍然大悟是事件冒泡导致的(平时项目都是插件,太久没有碰到冒泡了…),所以也记录下解决办法吧:

 $('.boxLeft .pNode, .boxRight .pNode').on('click', function(e){
      if(!e.isPropagationStopped()){
          $('.boxLeft .pNode').css({
              'background':'#fff',
              'color':'black'
          });
          $('.boxLeft .childrenTree li').css({
              'background':'#fff',
              'color':'black'
          });
          $(this).css({
              'background':'#1E9FFF',
              'color':'#fff'
          });
          type = $(this).data('type');
          pNodeIndex = $('.boxLeft .pNode').index($(this));
          id = $(this).data('id');
          pid = '';
          if(!flag) {
              $('.boxLeft .childrenTree').eq(pNodeIndex).show();
              flag = !flag;
          } else {
              $('.boxLeft .childrenTree').eq(pNodeIndex).hide();
              flag = !flag;
          }
      }
      e.stopPropagation();
  });

关键两行代码:

if(!e.isPropagationStopped()){***}  //检测event.stopPropagation是否被调用过
e.stopPropagation();

数据共享配置页面

当点击其他同级菜单下的页面中的相同功能时,再返回数据共享配置页面时,点击页面中的功能按钮,没有效果;
原因: 不同页面间,相同的功能使用了一样的id(或者class类),导致页面间的交叉污染,功能错乱。!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值