情景

如上面的模态框,点击左边的添加按钮,会把整个div添加到右边,点击右边的删除按钮,则把整个div添加回左边,就类似于穿梭框的样子。


不难,下面是一开始想到的方案:

$('#SelectedDevice button').click(function(){$(this).text('添加');let this_device = $(this).parent().parent();this_device.remove();//从待选设备框中移除$('#DeviceToBeSelected').append(this_device);autoHeight('DeviceToBeSelected', 'SelectedDevice');//左右div高度自适应
});

功能是实现了,但是发现一个问题,就是,我把左边的 div.card 添加到右边后,再点击 button 按钮,触发不了对应的事件了。凡是动态添加的元素都出现了这个情况,而页面中原先写死的却不受影响。

看了一下文档,找了一下资料,问题产生的原因应该是这个:

jquery的事件绑定在页面加载时就已经完成,所以之后动态添加的class将无法绑上事件。

解决方案

旧版本的JQuery说是用 $().live()
新版本的JQuery则是用 $('父元素').on('click','子元素',function(){})
即JQ通过绑定父元素来监听其下面的子元素是否发生 click 事件。这个父元素一定要写死的,没有的话,就绑定在 <body> 上好了。

方案代码:

$('#SelectedDevice').on('click','button',function(){$(this).text('添加');let this_device = $(this).parent().parent();this_device.remove();//从待选设备框中移除$('#DeviceToBeSelected').append(this_device);autoHeight('DeviceToBeSelected', 'SelectedDevice');
});

【JQ】动态添加的元素无法触发绑定事件的解决办法相关推荐

  1. html 元素响应,jQuery动态添加html元素后,响应事件的问题记录

    var li = " " + "" + // 缩略图 点击部分 index='" + i + "' "" + " ...

  2. jq append添加的元素click获取不到的解决方法

    移动端手机ios网页,apppend添加html class名用 on()方法没效果 解决方案:在html里面给需要点击的元素加一个οnclick="javascript:void(0)&q ...

  3. 中文输入法不触发onkeyup事件的解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 这两天做一个需要实时监控文本框输入的功能,碰到了中文输入法无法触发onkeyup事件的恶心问题. 具体表现是这样的: 当监听一 ...

  4. js动态添加的元素,动作绑定

    $(document).on("click",".name",function(){ //code; })

  5. jQuery给动态添加的元素绑定事件的方法

    jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定.在1.7版本以前使用live.但是在1.8版本以后推荐使用on.这 ...

  6. 动态添加html元素绑定事件,关于javascript:jQuery如何将onclick事件绑定到动态添加的HTML元素...

    本问题已经有最佳答案,请猛点这里访问. 我想将onclick事件绑定到用jquery动态插入的元素 但它从不运行绑定函数.如果您能指出这个示例为什么不起作用,以及如何使它正常运行,我将非常高兴: /p ...

  7. jQuery 为动态添加的元素绑定事件

    在使用jquery的方式为元素绑定事件时,我经常使用bind或者click,但这只能为页面已经加载好的元素绑定事件.像需要用ajax的方式请求远程数据来动态添加页面元素时,显然以上几种绑定事件的方式是 ...

  8. JavaScript实现动态添加的元素添加点击事件

    在页面开发过程中常常遇到需要动态添加元素,然后给这一元素绑定相关事件的情况,这种情况下一般需要给元素加上相关属性,然后写这些元素的事件函数即可.动态添加的元素怎么绑定事件呢? 原生JavaScript ...

  9. js动态添加页面元素

    在刚完成的作业中,使用的动态添加页面元素的代码: function add(name) {$("#list").append(" <a class='a' href ...

最新文章

  1. python修改类的属性值_python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值...
  2. 安装cadence ic5141时碰到字体问题
  3. 并发编程---线程queue---进程池线程池---异部调用(回调机制)
  4. JMF入门(Java Media Framework)
  5. dedeCMS 会员中心注册登陆页面 - 模板修改
  6. 双塔模型的瓶颈究竟在哪?
  7. 【转】Java杂谈(九)--Struts
  8. kitti raw数据处理--跑vins
  9. c语言程序中不能表示数制的是,2017计算机c语言二级考试题库及答案
  10. powershell免杀思路分析(过某60和某绒)
  11. Pyinstaller打包
  12. 极路由添加静态路由表_如何将静态TCP / IP路由添加到Windows路由表
  13. MATLAB基础图像处理算法
  14. linux flash擦除命令,Linux下flash操作读、写、擦除步骤
  15. 华硕服务器主板引导设置,装系统时的引导设置_华硕 ROG Rampage VI Apex_主板评测-中关村在线...
  16. 第三章IP网际协议层
  17. github使用教程linux,GitHub Linux下使用方法
  18. 嵌入式 ssl协议详解
  19. 到微软下载VS2008
  20. 金山WPS软件测试笔试题目总结

热门文章

  1. ssm基于Android的校园考研论坛APP(ssm+uinapp+Mysql)
  2. 来自一枚敢敢的Kotlin——Android开发日志之初识RecyclerView
  3. usb打印机驱动调试记录
  4. 在线电池测试软件,新威电池测试软件bts testcontrol
  5. noxctf2018_grocery_listactf_2019_message
  6. [JavaEE - JPA] 6. ORM的核心注解 - 基础类型以及嵌套类型
  7. 2021.5.10 《致橡树》
  8. 乐视2 usb计算机连接,乐视手机怎么连接电脑?乐视手机连接电脑具体方法
  9. [130316]上色练习-初音
  10. SpringBoot项目启动,插件配置版本都协调可以兼容了但是还报错:Error while storing the mojo status