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实现的当离开页面时出现提示的实现代码
Jun 27 Javascript
node.js解决获取图片真实文件类型的问题
Dec 20 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
js调出上下文菜单的实例
Dec 17 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
Sep 29 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
IntersectionObserver API 详解篇
Dec 11 Javascript
详解webpack2+React 实例demo
Sep 11 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
React实现全局组件的Toast轻提示效果
Sep 21 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 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操作memcache缓存方法分享
2015/06/03 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
jquery简单体验
2007/01/10 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
JavaScript中的函数(二)
2015/12/23 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
整理Python最基本的操作字典的方法
2015/04/24 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Tornado高并发处理方法实例代码
2018/01/15 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
pandas 对group进行聚合的例子
2019/12/27 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
设计专业毕业生求职信
2014/06/25 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
消防安全主题班会
2015/08/12 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
Java 异步任务计算FutureTask
2022/04/28 Java/Android