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 相关文章推荐
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
jQuery中event.target和this的区别详解
Aug 13 jQuery
jQuery冲突问题解决方法
Jan 19 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中的观察者模式
2010/03/24 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php源码的使用方法讲解
2019/09/26 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
vue动态改变背景图片demo分享
2018/09/13 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
详解windows python3.7安装numpy问题的解决方法
2018/08/13 Python
uwsgi+nginx部署Django项目操作示例
2018/12/04 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
浅谈Python type的使用
2019/11/19 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
写给老师的表扬信
2014/01/21 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
java如何实现socket连接方法封装
2021/09/25 Java/Android