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


Posted in Javascript onSeptember 20, 2019

问题描述

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动态加载复选框无法选中的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery div 居中技巧应用介绍
Nov 24 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
学习Node.js模块机制
Oct 17 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
layui 实现表格某一列显示图标
Sep 19 Javascript
js函数和this用法实例分析
Mar 13 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 jQuery
webpack的移动端适配方案小结
Jul 25 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
Sep 20 #Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 #Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 #Javascript
使用layui实现树形结构的方法
Sep 20 #Javascript
生成无限制的微信小程序码的示例代码
Sep 20 #Javascript
浅谈layui分页控件field参数接收对象的问题
Sep 20 #Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 #Javascript
You might like
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
详谈PHP文件目录基础操作
2014/11/11 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
PHP7内核之Reference详解
2019/03/14 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
原生JS实现日历组件的示例代码
2017/09/22 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
python实现实时监控文件的方法
2016/08/26 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python单例模式的多种实现方法
2019/07/26 Python
NumPy中的维度Axis详解
2019/11/26 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
创先争优制度
2014/01/21 职场文书
中药学专业求职信
2014/05/31 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
付款承诺函范文
2015/01/21 职场文书