渐渐模糊了约定 2024-01-25 09:06 采纳率: 17.4%
浏览 15
已结题

按钮点击一次后就失效了

layui 表格中按钮点击一次后失效。

<script type="text/html" id="toolbar">
            <div class="layui-inline">
              <div class="layui-input-block" style="margin-left: 0px;margin-right: 10px;">
                  <input type="text" name="textinput" id="text" class="layui-input" style="width: 260px;" placeholder="支持输入墓主姓名、经办人、到期时间">
              </div>
              </div>
              
              <div class="layui-inline">
                  <button class="layui-btn btn-top" data-type="find" id="find">查询</button>
                  <button class="layui-btn btn-top" data-type="refresh" id="refresh">刷新</button>
              </div>
          </script>

使用类选择器点击一次后就失效了,但是使用id选择器是正常的?

$('.btn-top').on('click', function(){
      console.log("点击按钮")
      var type = $(this).data('type');
      active[type] ? active[type].call(this) : '';
    });

// $('#find').on('click',function(){
    //   console.log("点击按钮find")
    // })

按钮我是放在table里的,会不会是table的问题?

table.render({
        elem: '#custom-table-operate',
        url: 'Custom_customList', // 此处为静态模拟数据,实际使用时需换成真实接口
        toolbar: '#toolbar',
    defaultToolbar: ['exports', 'print']
})

  • 写回答

2条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2024-01-25 09:15
    关注

    该问题可能发生的几个原因:

    在数据重新加载或视图重新渲染后,事件绑定可能会丢失,因此需要重新绑定事件处理器。这可能是你遇到问题的主要原因,因为你的按钮在表格渲染后创建。
    后来渲染的元素可能无法通过常规的点击事件进行绑定。

    针对这两个可能的原因,你可以尝试以下代码来进行事件的委派,将点击事件绑定到静态存在的父元素上,然后通过选择器参数去限定子元素。Layui将按钮加入到table之后,事件会自动委派到那些后来加入的按钮元素。

    $('body').on('click', '.btn-top', function() {
      console.log("点击按钮")
      var type = $(this).data('type');
      active[type] ? active[type].call(this) : '';
    });
    
    
    

    这里使用 'body' 是保守的做法,理论上你可以选择比 'body' 更具体的父级元素,只要它在 .btn-top 被创建时已经存在就可以。
    希望这个答案能解决你的问题,如果有其他疑问,欢迎继续提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月25日
  • 创建了问题 1月25日

悬赏问题

  • ¥15 51嵌入式入门按键小项目
  • ¥30 海外项目,如何降低Google Map接口费用?
  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)
  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题