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 相关文章推荐
推荐dojo学习笔记
Mar 24 Javascript
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
jquery插件之easing使用
Aug 19 Javascript
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
Jan 14 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
jQuery实现自动滚动到页面顶端的方法
May 22 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
React如何实现浏览器打印部分内容详析
May 19 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
JS通过识别id、value值对checkbox设置选中状态
Feb 19 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 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中stdClass的用法分析
2015/02/27 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
详解Bootstrap插件
2016/04/25 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
几种响应式文字详解
2017/05/19 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
社会学专业学生职业规划书
2014/02/07 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
教室布置标语
2014/06/26 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
python 如何做一个识别率百分百的OCR
2021/05/29 Python
Python代码风格与编程习惯重要吗?
2021/06/03 Python