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学习2 选择器的使用说明
Feb 07 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
Jun 18 Javascript
AngularJS语法详解
Jan 23 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
Jan 12 Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
Dec 14 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
vue-cli3 配置开发与测试环境详解
May 17 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
通过实例了解Render Props回调地狱解决方案
Nov 04 Javascript
Array.filter中如何正确使用Async
Nov 04 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 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
PHP生成压缩文件实例
2015/02/07 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
ie focus bug 解决方法
2009/09/03 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
django 模型字段设置默认值代码
2020/07/15 Python
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
总务岗位职责
2013/11/19 职场文书
大学生创业计划书的用途
2014/01/08 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
python装饰器代码解析
2022/03/23 Python
Java中API的使用方法详情
2022/04/06 Java/Android
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS