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技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 Javascript
js 如何实现对数据库的增删改查
Nov 23 Javascript
jQuery在html有效在jsp无效的原因及解决方法
Aug 02 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
jQuery中:enabled选择器用法实例
Jan 04 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
Jan 04 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
javaScript产生随机数的用法小结
Apr 21 Javascript
js实现点击展开隐藏效果(实例代码)
Sep 28 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
JS实现滑动插件
Jan 15 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
咖啡的传说和历史
2021/03/03 新手入门
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
php随机抽奖实例分析
2015/03/04 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
php socket通信简单实现
2016/11/18 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
基于jQuery的星级评分插件
2011/08/12 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
Python中使用中文的方法
2011/02/19 Python
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
详解python中的装饰器
2018/07/10 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
英国舒适型鞋履品牌:FitFlop
2017/05/17 全球购物
总经理助理的八要求
2013/11/12 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
安全生产月演讲稿
2014/05/09 职场文书
2015年读书月活动总结
2015/03/26 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
道歉情书大全
2015/05/12 职场文书
董事长年会致辞
2015/07/29 职场文书