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 相关文章推荐
jQuery 操作option的实现代码
Mar 03 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 Javascript
jQuery过滤选择器用法分析
Feb 10 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
May 15 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
Dec 23 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
vue强制刷新组件的方法示例
Feb 28 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 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程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
python实现单向链表详解
2018/02/08 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
iPython pylab模式启动方式
2020/04/24 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
如何使用PHP session
2015/04/21 面试题
物流仓储计划书
2014/01/10 职场文书
有关打架的检讨书
2014/01/25 职场文书
自荐书4要点
2014/01/25 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
绿化工程实施方案
2014/03/17 职场文书
商务英语广告词大全
2014/03/18 职场文书
幼师求职信
2014/06/23 职场文书
协会周年庆活动方案
2014/08/26 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL