解决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插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jQuery操作css样式
May 15 jQuery
jQuery自定义多选下拉框效果
Jun 19 jQuery
jQuery实现一个简单的验证码功能
Jun 26 jQuery
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
Nov 13 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jquery实现动态改变css样式的方法分析
May 27 jQuery
jquery多级树形下拉菜单的实例代码
Jul 09 jQuery
jQuery 实现扁平式小清新导航
Jul 07 jQuery
jQuery实现手风琴特效
Jan 11 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中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
微信小程序实现上传图片功能
2018/05/28 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
vue 扩展现有组件的操作
2020/08/14 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python中二维阵列的变换实例
2014/10/09 Python
利用python程序生成word和PDF文档的方法
2017/02/14 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
TCP/IP的分层模型
2013/10/27 面试题
服务行业个人求职的自我评价
2013/12/12 职场文书
员工薪酬福利制度
2014/01/17 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
规范化管理年活动总结
2014/08/29 职场文书
拯救大兵瑞恩观后感
2015/06/09 职场文书
生日宴会祝酒词
2015/08/10 职场文书
公司新员工欢迎词
2015/09/30 职场文书