解决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实现前端分页功能
Mar 23 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
20个最常见的jQuery面试问题及答案
May 23 jQuery
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
详解jQuery中的easyui
Sep 02 jQuery
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
jquery实现垂直手风琴导航栏
Feb 18 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
jQuery 实现DOM元素拖拽交换位置的实例代码
Jul 14 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
Terran建筑一览
2020/03/14 星际争霸
加速XP搜索功能堪比vista
2007/03/22 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
python Django批量导入数据
2016/03/25 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
运动会解说词50字
2014/01/18 职场文书
初一生物教学反思
2014/01/18 职场文书
初中英语教学反思
2014/01/25 职场文书
工作违纪检讨书
2014/02/17 职场文书
新品发布会策划方案
2014/06/08 职场文书
婚前财产协议书范本
2014/10/19 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
Java设计模式中的命令模式
2022/04/28 Java/Android