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 相关文章推荐
javascript html 静态页面传参数
Apr 10 Javascript
TextArea不支持maxlength的解决办法(jquery)
Sep 13 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
JS实现设置ff与ie元素绝对位置的方法
Mar 08 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
vue spa应用中的路由缓存问题与解决方案
May 31 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
javascript绘制简单钟表效果
Apr 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
实用函数9
2007/11/08 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
使用JQuery进行跨域请求
2010/01/25 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
wxPython实现画图板
2020/08/27 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
新闻学专业应届生求职信
2013/11/08 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
自我检讨报告
2015/01/28 职场文书
2015年教务主任工作总结
2015/07/22 职场文书