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 相关文章推荐
js获取当前日期时间及其它操作汇总
Apr 17 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
Aug 01 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
angularjs实现上拉加载和下拉刷新数据功能
Jun 12 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
jQuery zTree插件使用简单教程
Aug 16 jQuery
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 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
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
2013/01/17 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
PyQt5组件读取参数的实例
2019/06/25 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
python如何变换环境
2020/07/21 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
建筑个人求职信范文
2014/01/25 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
高二英语教学反思
2016/03/03 职场文书