解决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 ajax请求struts action实现异步刷新
Apr 19 jQuery
jQuery extend()详解及简单实例
May 06 jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
jquery.picsign图片标注组件实例详解
Feb 02 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
基于jquery实现九宫格拼图小游戏
Nov 30 jQuery
jQuery实现html可联动的百分比进度条
Mar 26 jQuery
jQuery实现tab栏切换效果
Dec 22 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编写大型网站问题集
2007/03/06 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
车间班组长的职责
2013/12/13 职场文书
求职简历中自我评价
2014/01/28 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
Oracle 多表查询基本语法实例
2022/04/18 Oracle