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 相关文章推荐
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
JS随机调用指定函数的方法
Jul 01 Javascript
基于JavaScript获取鼠标位置的各种方法
Dec 16 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
使用JS读取XML文件的方法
Nov 25 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 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
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
Python编程之多态用法实例详解
2015/05/19 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python装饰器常见使用方法分析
2019/06/26 Python
python如何写出表白程序
2020/06/01 Python
python 调用Google翻译接口的方法
2020/12/09 Python
小学运动会表扬稿
2014/01/19 职场文书
促销活动方案模板
2014/02/24 职场文书
政府个人对照检查材料
2014/08/28 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
与死神共舞观后感
2015/06/15 职场文书
素质教育学习心得体会
2016/01/19 职场文书