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 相关文章推荐
js技巧--转义符&quot;\&quot;的妙用
Jan 09 Javascript
ExtJS 设置级联菜单的默认值
Jun 13 Javascript
js单例模式的两种方案
Oct 22 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
jquery中post方法用法实例
Oct 21 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
谈一谈vue请求数据放在created好还是mounted里好
Jul 27 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
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中使用sftp教程
2015/03/30 PHP
教大家制作简单的php日历
2015/11/17 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
JS实现拼图游戏
2021/01/29 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python实现反转部分单向链表
2018/09/27 Python
Django csrf 验证问题的实现
2018/10/09 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python Http请求json解析库用法解析
2020/11/28 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
应届大学生求职信
2014/07/20 职场文书
小学中队委竞选稿
2015/11/20 职场文书