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框架Ajax常用选项
Jul 08 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
jQuery中$原理实例分析
Aug 13 jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
使用jQuery实现购物车
Oct 29 jQuery
jQuery实现简单轮播图效果
Dec 27 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 curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python构造函数及解构函数介绍
2015/02/26 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python实现udp传输图片功能
2020/03/20 Python
django queryset相加和筛选教程
2020/05/18 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
web页面录屏实现
2019/02/12 HTML / CSS
药学专业大专生的自我评价
2013/12/12 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
单位委托书格式范本
2014/09/29 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书