jQuery on()方法绑定动态元素的点击事件无响应的解决办法


Posted in Javascript onJuly 07, 2016
$('#check_all').on('click' , function(){
alert(1);
});
$("#yujinlist").append(html);
count++; 
}

以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的:

支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了。现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面。动态的元素或者样式等,可以放在on的第二个参数里面。

因为我先输出相关html,再执行就没问题了。

<div class="row">\
<div class="col-xs-12">\
<div class="control-group">\
<label class="control-label bolder blue">选择镇街</label>\
<div class="row">\
<div class="checkbox col-xs-1">\
<label>\
<input type="checkbox" class="checkbox" id="check_all" />\
<span class="lbl">全区</span>\
</label>\
</div>\
<div id="check_item">\
<div class="checkbox col-xs-1 ">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">西南街道</span>\
</label>\
</div>\
<div class="checkbox col-xs-1 ">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">云东海街道</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">白坭镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">乐平镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">大塘镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">芦苞镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">南山镇</span>\
</label>\
</div>\
</div>\
</div>\
</div>\
</div>\
</div>\
<hr />'; 
$('#check_all').on('click' , function(){
var that = this;
$('#check_item').find('input:checkbox')
.each(function(){
alert(2);
this.checked = that.checked;
$(this).closest('.col-xs-1').toggleClass('selected');
});
});

下面看下jquery on() 方法绑定动态元素

jQuery on()方法是官方推荐的绑定事件的一个方法。使用 on() 方法可以给将来动态创建的动态元素绑定指定的事件,例如append等。

<div id="test">
<div class="evt">evt1</div>
</div>

错误的用法,下面方法只为第一个class 为 evt 的div 绑定了click事件,使用append动态创建的div则没有绑定

<script>
// 先绑定事件再添加div
$('#test .evt').on('click', function() {alert($(this).text())});
$('#test').append('<div class="evt">evt2</div>');
</script>

正确的用法如下:

<script>
$('body').on('click', '#test .evt', function() {alert($(this).text())});
$('#test').append('<div class="evt">evt2</div>');
</script>

以上所述是小编给大家介绍的jQuery on()方法绑定动态元素的点击事件无响应的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
Jan 29 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
Apr 08 Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 Javascript
详细分析JS函数去抖和节流
Dec 05 Javascript
vue interceptor 使用教程实例详解
Sep 13 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
Vue 打包的静态文件不能直接运行的原因及解决办法
Nov 19 Vue.js
浅谈react路由传参的几种方式
Mar 23 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 #Javascript
Node.js DES加密的简单实现
Jul 07 #Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
Jul 07 #Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 #Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 #Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 #Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 #Javascript
You might like
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
js验证上传图片的方法
2015/05/12 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
使用vue重构资讯页面的实例代码解析
2019/11/26 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
Blank NYC官网:夹克、牛仔裤等
2020/12/16 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
中英双版中文教师求职信
2013/10/27 职场文书
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
文明单位申报材料
2014/12/23 职场文书
2016年教师节感言
2015/12/09 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python