jQuery页面元素动态添加后绑定事件丢失方法,非 live


Posted in Javascript onJune 16, 2016

代码1: 以此方法绑定的input框事件,在通过add按钮后用jquery绑定的事件 alert就会丢失

<input type="button" value="Add" name="test_but" />
<div id="test_div"><input name="test_input"/></div>
<script>
$('input[name=test_input]').change(function(){
alert($(this).val()) ;
});
$('input[name=test_but]').click(function(){
$('input[name=test_input]').clone().appendTo($('#test_div'));
});
</script>

代码2: 以jquery的live方法绑定change事件,alert不会丢失,但是在点击add时有可能多次添加input,或者多次弹出提醒框,刷新页面后就好了,但是多次操作后还是会这样

<input type="button" value="Add" name="test_but" />
<div id="test_div"><input name="test_input" onchange="alert_val(this)"/></div>
<script>
$('input[name=test_input]').live('change',function(){
alert($(this).val()) ;
});
$('input[name=test_but]').click(function(){
$('input[name=test_input]').clone().appendTo($('#test_div'));
});
</script>

代码3: 解决之道....

<input type="button" value="Add" name="test_but" />
<div id="test_div"><input name="test_input" onchange="alert_val(this)"/></div>
<script>
function alert_val(obj){
alert($(obj).val());
}
$('input[name=test_but]').click(function(){
$('input[name=test_input]').clone().appendTo($('#test_div'));
});
</script>

通过js原生态的onchange事件,把对象本身传递进去,这样既可以用到jquery语法继续写东西,也不会丢失绑定事件,更加不会因为live的特性导致事件多次执行....完美!

Javascript 相关文章推荐
JavaScript的document对象和window对象详解
Dec 30 Javascript
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
Jun 14 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
详解vue-router基本使用
Apr 18 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
Mar 15 Javascript
express如何解决ajax跨域访问session失效问题详解
Jun 20 Javascript
使用webpack搭建pixi.js开发环境
Feb 12 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 Javascript
three.js显示中文字体与tween应用详析
Jan 04 Javascript
JSON字符串和对象相互转换实例分析
Jun 16 #Javascript
jQuery的层级查找方式分析
Jun 16 #Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 #Javascript
JS中sort函数排序用法实例分析
Jun 16 #Javascript
JS原型对象的创建方法详解
Jun 16 #Javascript
JS使用单链表统计英语单词出现次数
Jun 16 #Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 #Javascript
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
织梦模板标记简介
2007/03/11 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHP微信红包API接口
2015/12/05 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue二级路由设置方法
2018/02/09 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
js html实现计算器功能
2018/11/13 Javascript
从零学Python之入门(五)缩进和选择
2014/05/27 Python
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
分享给Python新手们的几道简单练习题
2017/09/21 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
Python接口自动化测试框架运行原理及流程
2020/11/30 Python
办公室人员先进事迹
2014/01/27 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
加薪申请报告范本
2015/05/15 职场文书
学校安全管理制度
2015/08/06 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技