layui动态绑定事件的方法


Posted in Javascript onSeptember 20, 2019

Tips:很多前端新手会遇到动态创建DOM(html片段)的场景,原来的点击事件无法生效。以及成熟的layui框架动态创建DOM(html片段)不知道如何解决,接下来为大家解释其实现的原理,是主要是通过es6的写法。

一、常规动态创建DOM(html片段)

<!--.html代码片段-->
<!--按钮-->
<button class="data-set" type="button">添加</button>
<!--动态创建的位置-->
<div class="setBox" data-uid="setBox"></div>

<!--jQ代码片段-->
 $(function(){//初始化
  var setBox=$('.setBox');//获取动态添加对象
  $('.data-set').on('click',function () {

    var _html3=`
    <div class="info"> <admin:text  value=""     class="timeInterval" /> <span class="del"> 删除</span> </div>
    `;//此处用es6的方式拼接需要动态创建的代码(模板)
    setBox.append(_html3);//append方法将_html3动态添加到setBox内
    //$('.timeInterval').focus();//聚焦(如果是layui框架会有小bug,用户要先失去焦点再点一次才能调用layui方法)
   });

  $('body').on('click','.del',function () {//事件委托,请看下方注释
    $(this).parents('.info').hide();//模拟前端删除按钮
   });
 })

Tips:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。这也是解决动态创建HTML片段点击事件无法生效的原因。body是父级,即DOM本就存在的对象,但是考虑到兼容性,移动端IOS不支持body作为事件绑定的对象,本文的解决方案是将body改为.setBox即可完美实现事件委托。

效果图如下:

layui动态绑定事件的方法

Tips:绿色框内为初始状态,红色框内为点击添加后实现的模型

二、layui动态绑定事件

1.框架的引入和实例化

自行引入layui.css和layui.js,初始化或者实例化laydate,如果没有这些操作可是会报错的哦。

layui.use('laydate', function(){
  var laydate = layui.laydate;
})

2.html代码片段

<b>禁止交易时间点击日历增加</b>
<!--按钮-->
<p class="data-stop">添加</p>
<!--动态创建的位置-->
<div class="stopBox"></div>

tips:此处的p标签为按钮,样式自行修改

3.js代码片段

var stopBox=$('.stopBox');
  var test=0;//定义一个变量,用于动态创建类名
  $('.data-stop').on('click',function () {
   test=test+1;//防止类名重复
   var _html2=`<div class="info"><admin:text value="" len="250" class="stop${test}"/> <span class="del"> 删除</span></div>`;//(关键)此处用es6的方式拼接需要动态创建的代码(模板),若不是es6的写法$(test)无法识别,需要用“+test+”的方式去拼接。
 stopBox.append(_html2);//实现代码片段动态添加
  //(关键)执行一个laydate实例,如果不执行实例化,无法给动态添加的DOM节点绑定方法
  laydate.render({
   elem: '.stop'+test //指定元素,test为变量
  });
  //$('.stop'+test).focus();//建议不使用聚焦,否则用户体验感不佳
 });

  //交易时间删除按钮
  $('body').on('click','.del',function () {
   $(this).parents('.info').hide();//模拟删除
  });

效果图如下:

layui动态绑定事件的方法

layui动态绑定事件的方法

以上这篇layui动态绑定事件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
js 格式化时间日期函数小结
Mar 20 Javascript
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
javascript实现方法调用与方法触发小结
Mar 26 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
BootStrap表单验证实例代码
Jan 13 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
javascript canvas时钟模拟器
Jul 13 Javascript
利用JS代码自动删除稿件的普通弹幕功能
Sep 20 #Javascript
基于layui table返回的值的多级嵌套的解决方法
Sep 19 #Javascript
layui默认选中table的CheckBox复选框方法
Sep 19 #Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 #Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 #Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 #Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 #Javascript
You might like
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
Redis构建分布式锁
2017/03/28 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
jQuery Dom元素操作技巧
2018/02/04 jQuery
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
个人充满哲理的自我评价
2014/02/20 职场文书
八项规定整改方案
2014/02/21 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js