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 相关文章推荐
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
jQuery文件上传插件Uploadify使用指南
Jun 05 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
浅谈js中的this问题
Aug 31 Javascript
vue.js实现简单轮播图效果
Oct 10 Javascript
原生JS实现简单的无缝自动轮播效果
Sep 26 Javascript
使用AutoJs实现微信抢红包的代码
Dec 31 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
php adodb连接mssql解决乱码问题
2009/06/12 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
2014/10/20 PHP
php实现无限级分类
2014/12/24 PHP
php实现的mongodb操作类
2015/05/28 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python paramiko模块学习分享
2017/08/23 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python线程池threadpool使用篇
2018/04/27 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
python实现简易学生信息管理系统
2020/04/05 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
党员公开承诺书和承诺事项
2014/03/25 职场文书
2014年个人委托书范本
2014/10/13 职场文书
员工加薪申请报告
2015/05/15 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书