解决layui动态加载复选框无法选中的问题

问题描述

1.最近用layui做后台界面,遇到layui跟ajax数据动态加载的checkbox,偶尔不能正常勾选,取消

2.有分页时,最后一页数据过少会导致其他页下方数据无法选中

3.页面没加载完或暴力测试时也会不能选中

利用layui更新渲染方法和网上的一些方法去解决后极大的减少了无法选中的情况,但是暴力测试时偶尔还会出现,实在不知道什么原因,所以就用了一个折中的方法——自己写一个复选框

 <!--原有layui复选框-->
<td>
  <div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon"></i></div>
</td>
<!--替换为自己写的-->
<td>
  <div a="off" class="checkBox" v-bind:data-id='x.Id' v-on:click="checkBox(i)">
    <div></div>
  </div>
</td>

自己写的同样支持vue绑定事件,并且支持单个选中、取消,全选和取消

//单个的选中取消 

checkBox:function(n){
  var checkbox = $('tbody tr').eq(n).find('.checkBox');
  if (checkbox.attr("a") == "off") {
    checkbox.children("div").css({
      "display" : "block"
    });
    checkbox.attr("a","on");
  }else {
    checkbox.children("div").css({
      "display" : "none"
    });
    checkbox.attr("a","off");
  }
}

//全选取消

checkBoxAll:function(){
  var obj = $('thead').find('.checkBox');
  if ($(obj).attr("a") == "off") {
    $('.checkBox div').css({"display" : "block"});
    $('.checkBox').attr("a","on");
  }else {
    $('.checkBox div').css({"display" : "none"});
    $('.checkBox').attr("a","off");
  }
}

全选或者选中其中几个,获取对应id,删除或进行其他操作

function getId() {
  var obj = $("tbody .checkBox");
  var arr='';
  obj.each(function(index, el) {
    if(obj.eq(index).attr("a") == "on"){
      arr += obj.eq(index).attr('data-id')+ ','
    }
  });
  return arr;
}

以上这篇解决layui动态加载复选框无法选中的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

相关推荐:

Tkinter 中实现复选框控制 UI 元素的动态显示与隐藏

本文详解如何利用tkinter的checkbutton实现界面元素(如输入框、按钮等)的条件性显示与隐藏,通过绑定回调函数和pack/pack_forget方法实现实时响应用户交互。 本文详解如何利用tkinter的checkbutton实现界面元素(如输入框、按钮等)的条件性显示与隐藏,通过绑定回...

Layui给switch添加响应事件的例子

今天做项目时,遇到layui中的switch,需要给这个开关添加事件,也就是当你点击是会弹框提示 刚开始我用传统的处理方法,直接给它添加个js事件,到最后会发现,没响应,于是我查文档,逛论坛终于找到一个解决办法,代码如下 <inputtype="checkbox"name="zzz"lay-s...

layui中select下拉change事件失效怎么办

这篇文章主要介绍layui中select下拉change事件失效怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!layui中select下拉change事件失效的处理方法1.select中添加lay-filter=“test”<select lay-fil...

layui 实现table翻页滚动条位置保持不变的例子

最近使用了layuitable但是发现了一系列问题,由于被封装过不好自己修改,比如翻页后滑动条每次都会复位,导致体验不好,通过调试,我发现layuitable并没有给div加id标签,我通过class定位表格div位置。 可以看到 滚动条所在div class="layui-ta...