解决jQuery使用append添加的元素事件无效的问题


Posted in jQuery onAugust 30, 2018

jquery api官方的例子在新增的元素上添加事件

$(document).on("click",'#lyysb a',function(){
 if(!$(this).hasClass('cur')){
  $(this).addClass('cur');
 } else {
  $(this).removeClass('cur');
 }
});

on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。

注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

提示:如需移除事件处理程序,请使用 off() 方法。

提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

*把事件绑定在docunmet就和原来的live方法没有区别了。原先的live()方法,处理函数是默认绑定在document对象上不能变的,如果DOM嵌套结构很深,事件冒泡通过大量祖先元素会导致较大的性能损失。而使用.on()方法,事件只会绑定到$()函数的选择符表达式匹配的元素上,因此可以精确地定位到页面中的一部分,而事件冒泡的开销也可以减少。

例如我会在zkdiv中动态添加多个class=”zk”的dom节点,也想对动态增加的节点绑定相同的事件则可以通过以下代码实现

<div id="zkdiv">
 <input type="button" value="展开" id="zk" class="zk"/> <br>
</div>

//展开按钮点击触发事件

$("#zkdiv").on("click",".zk",function(){
 console.log("on 点击一次");
});
var html2 = "<input type='button' class='zk' value='新生成的展开' />";
$("#zkdiv").append(html2);

*这样一来处理函数就绑定到#zkdiv的选择器上去了,事件冒泡导致的性能损失会大大降低(使用该方法时要确保.on前面的选择器能选择到对象 否则不起作用)

click是点击事件,但是在页面加载完之后,jquery事件新添加的元素,用click的话是无法获取元素的,这个时候要用on去获取元素事件,简单的说页面加载完成时候页面显示的元素可以用on,也可以用click,但是页面加载完成之后后期再追加的元素只能用on。

以上这篇解决jQuery使用append添加的元素事件无效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
jQuery日程管理控件glDatePicker用法详解
Mar 29 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
jQuery实现放大镜案例
Oct 19 jQuery
jQuery实现简单轮播图效果
Dec 27 jQuery
jQuery实现的简单手风琴效果示例
Aug 29 #jQuery
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 #jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 #jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 #jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 #jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 #jQuery
JQuery扩展对象方法操作示例
Aug 21 #jQuery
You might like
php 动态多文件上传
2009/01/18 PHP
php 字符串替换的方法
2012/01/10 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
用JavaScript隐藏控件的方法
2009/09/21 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python实现list由于numpy array的转换
2018/04/04 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python selenium操作cookie的实现
2020/03/18 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
运动会通讯稿200字
2014/02/16 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
公司业务员管理制度
2015/08/05 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript