jQuery动态添加元素无法触发绑定事件的解决方法分析


Posted in jQuery onJanuary 02, 2018

本文实例讲述了jQuery动态添加元素无法触发绑定事件的解决方法。分享给大家供大家参考,具体如下:

最近遇到一个问题,即当用jquery动态添加元素后,发现给动态添加的元素却无法触发事件。后来在网上查阅了一些资料,发现原来要这样处理:

先上我出错的代码:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="external nofollow" >
  <script src="//cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script>
  <script>
    $(document).ready(function(){
//这里是动态添加元素
      $(".add").click(function(){
        var btn = $("<button class='newBtn btn btn-default'>新按钮</button>");
        $("body").append(btn);
      })<br><br>//这里是为添加的元素添加事件
      $(".newBtn").click(function(){
        alert("这里是新添加的元素触发的事件");
      })
    })
  </script>
</head>
<body>
<button class=" add btn btn-default">添加按钮</button>
</body>
</html>

奉上我的解决方法

方法一:绑定live事件(live事件只在jquery1.9以下才支持,高版本不支持)。

$(".newBtn").live("click",function(){
///jquery 1.9(不包括1.9)以下可以
  alert('这里是动态元素添加的事件');
})

方法二:利用on()事件绑定($(ParentEle).on("click",".thisEle",function(){})

$("body").on("click", ".newBtn", function() {
   alert('这里是动态元素添加的事件');
});
//这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。
//注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
$("body").on("click", ".newBtn",aa );
function aa(){
    alert('这里是动态元素添加的事件');
}

ok,问题解决,继续爬坑。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
jQuery常用选择器详解
Jul 17 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
基于jquery.page.js实现分页效果
Jan 01 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
JQuery的加载和选择器用法简单示例
May 13 jQuery
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
jquery实现简易验证插件封装
Sep 13 jQuery
jQuery实现简单评论区功能
Oct 26 jQuery
jQuery实现简单弹幕制作
Dec 10 jQuery
基于jquery.page.js实现分页效果
Jan 01 #jQuery
jquery实现企业定位式导航效果
Jan 01 #jQuery
jquery实现楼层滚动效果
Jan 01 #jQuery
jquery实现左右轮播切换效果
Jan 01 #jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 #jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 #jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 #jQuery
You might like
PHP面向对象教程之自定义类
2014/06/10 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
利用php生成验证码
2017/02/23 PHP
php接口隔离原则实例分析
2019/11/11 PHP
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
2019/09/18 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
Python语言异常处理测试过程解析
2020/01/08 Python
python实现处理mysql结果输出方式
2020/04/09 Python
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
PHP如何自定义函数
2016/09/16 面试题
八年级数学教学反思
2014/01/31 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书
了解Redis常见应用场景
2021/06/23 Redis
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers